您的位置:首页 > 其它

vs2010 如何设置MFC程序窗口大小

2013-04-22 13:00 344 查看


vs2010 如何设置MFC程序窗口大小

在vs2010中建立的MFC单文档程序,无论是在CMainFrame里的PreCreateWindow函数中对cs进行修改,还是使用SetWindowPos或MoveWindow函数,都无法实现对窗口的修改。 现在的状态是,如果给窗口加上可以调节大小这一style,那么窗口会自动保留上次更改后的大小,如果不加可调,那窗口就会按系统所固定的一个大小进行显示,根本无视我的所有设置,怎么办?
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs) { if( !CFrameWndEx::PreCreateWindow(cs) ) return FALSE; // TODO: Modify the Window class or styles here by modifying // the CREATESTRUCT cs cs.cx=500; // cs.cy=500; //这两行完全无视 cs.style = WS_OVERLAPPED | WS_CAPTION
| WS_SYSMENU ; return TRUE; } 尝试使用MoveWindow(50,50,500,500);与SetWindowPos(NULL, 0, 0, 500, 500, SWP_NOZORDER | SWP_NOMOVE); 却都没有任何效果。



程序在注册表里保留了FRAME上次的状态,包括大小位置以及各工具类窗口的布局等.  解决方法有二,其中第一个简单, 第二更稳妥:  1.)在InitInstance(..)调用CleanState(_T("WorkSpace"));  2.)让MainFrame按它的习惯布局完了再调整大小, 在此之前让MainFrame不显示.关键点: WM_CREATE, WM_WINDOWPOSCHANGING  你可能还会发现FRAME有时候会闪一下, 看着不舒服, 用第二个方法同样管用.



1人 | 分享到:
阅读(1995)| 评论(2)| 转载 (1) |举报



gcc -l参数和-L参数


删除MFC单文档默认菜单栏的两种方法
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: