您的位置:首页 > 其它

设置单文档+Formview窗口初始尺寸为固定值

2014-08-04 17:01 302 查看
很久没有用VS做MFC的开发了,今天用VS2010建了一个工程,需要设置初始窗口的尺寸为固定值,看了很多帖子都这样说:

</pre><p></p><pre name="code" class="cpp">BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
if( !CFrameWndEx::PreCreateWindow(cs) )
return FALSE;
// TODO: 在此处通过修改
//  CREATESTRUCT cs 来修改窗口类或样式
cs.cx = 800;
cs.cy = 600;
cs.style = cs.style&(~WS_THICKFRAME);
return TRUE;
}


但在窗口弹出后,没有任何改变。找了很久,总算找到一篇文章:
http://jingyan.baidu.com/article/e75057f2a86d84ebc81a8972.html

文章中说,要在 CXXXApp::InitInstance() 的系统自动生成的代码之后,添加这样一行代码:

SetWindowPos(CWnd::FromHandle(HWND_NOTOPMOST), 200, 200, 
300, 300, SWP_FRAMECHANGED | SWP_SHOWWINDOW);


经测试,有点小问题,修改如下:

SetWindowPos(GetActiveWindow(), HWND_NOTOPMOST, 200, 200, 
300, 300, SWP_FRAMECHANGED | SWP_SHOWWINDOW);


这样,生成的窗口就是指定的尺寸了,如果需要窗口在运行时不可调整拉伸大小,则需将PrecreateWindow()中默认的style改为:

BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
if( !CFrameWndEx::PreCreateWindow(cs) )
return FALSE;
// TODO: 在此处通过修改
//  CREATESTRUCT cs 来修改窗口类或样式

cs.style = cs.style&(~WS_THICKFRAME);

return TRUE;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: