BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
if( !CFrameWndEx::PreCreateWindow(cs) )
return FALSE;
// TODO: 在此处通过修改
// CREATESTRUCT cs 来修改窗口类或样式
cs.cx=500;
cs.cy=500;
return TRUE;
}
运行后窗口应该是方形的,可是实际窗口没有任何变化.
我在MFC的主框架类内的precreatewindow函数中修改CS的值,为何无效
答案:2 悬赏:20 手机版
解决时间 2021-03-12 19:16
- 提问者网友:人生佛魔见
- 2021-03-12 02:04
最佳答案
- 五星知识达人网友:思契十里
- 2021-03-12 02:19
因为程序在注册表里保留了FRAME上次的状态,包括大小位置以及各工具类窗口的布局等.
解决方法:
在App类的InitInstance中调用CleanState(_T("WorkSpace"))清除上次保存;
或者在App类的InitInstance中ShowWindow();UpdateWindow()之前修改窗口大小,例如 m_pMainWnd->MoveWindow(CRect(100, 100, 600, 400), FALSE);
解决方法:
在App类的InitInstance中调用CleanState(_T("WorkSpace"))清除上次保存;
或者在App类的InitInstance中ShowWindow();UpdateWindow()之前修改窗口大小,例如 m_pMainWnd->MoveWindow(CRect(100, 100, 600, 400), FALSE);
全部回答
- 1楼网友:夜风逐马
- 2021-03-12 03:41
你好!
应该放到if( !CFrameWndEx::PreCreateWindow(cs) )这句话前面
仅代表个人观点,不喜勿喷,谢谢。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯