VC/VB禁止Form或Dialog移动/鼠标拖动改变大小

   一、MFC中Form的属性修改

  1.  修改PreCreateWindow()函数如下:

 1   BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
 2 
 3   {
 4     if( !CFrameWnd::PreCreateWindow(cs) )       
 5       return FALSE;
 6 
 7     cs.dwExStyle &= ~WS_EX_CLIENTEDGE;
 8 
 9     cs.style &= ~WS_MAXIMIZEBOX; //禁止窗口最大化
10 
11     cs.style &= ~WS_MINIMIZEBOX; //禁止窗口最小化
12 
13     //    cs.style &= ~WS_SYSMENU; //取消Title上的按钮
14 
15     cs.style &= ~WS_THICKFRAME;//使窗口不能用鼠标改变大小
16 
17     cs.lpszClass = AfxRegisterWndClass(0);
18 
19     return TRUE;
20   }

2. VC2010 MFC 改变窗口默认大小 

  2.1.因为VS2010会将一些信息写入注册表,这个和之前VS2005,VS2008(SP1除外)不太一样,默认的SDI和MDI是带的BCG的一些东西。
你要修改窗口大小,可以直接在App类的InitInstance中ShowWindow();UpdateWindow()之前修改窗口大小,例如 m_pMainWnd->MoveWindow(CRect(100, 100, 600, 400), FALSE);

  2.2 MFC的应用程序向导在VC6.0中和VS2010中有很多区别。VS2010的中的MFC的应用程序向导增加了不少新的选项。默认情况下建立MFC应用程序,就会出现在PreCreateWindow()中修改cx、cy窗口大小不变的情况,在VS2010的MFC的应用程序向导的第二步选择MFC标准,第6步选择使用经典菜单。其效果即和VC6.0产生的效果一样。

 综上:

  在App类得InitInstance中写入下面的代码:

  m_pMainWnd ->MoveWindow(100, 50, 1100, 550, FALSE);

  即可完成对默认窗口大小的修改

二、MFC基于对话框项目--禁止改变窗口大小的简单实现方法

  首先以文本方式打开项目窗口的“.rc”文件,然后找到“STYLE DS_SETFONT | DS_FIXEDSYS | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU | WS_THICKFRAME”这一行。并改为“STYLE DS_SETFONT | DS_FIXEDSYS | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU & (~WS_THICKFRAME)”即可。
  或者直接在项目中“Ctrl+F”,然后整个项目中查找“WS_THICKFRAME”,找到需要禁止改变窗口大小的窗口源文件(.rc)下的“WS_THICKFRAME”并修改即可。
————————————————
版权声明:本文为CSDN博主「Dsircheck」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/DSQ235612/article/details/90257157

posted @ 2019-08-21 17:24  傍风无意  阅读(647)  评论(0)    收藏  举报