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
浙公网安备 33010602011771号