对于许多用户来说,这个问题可能被认为是天真的,但我是MFC的新手,我需要一个指示。我想为SDI窗口设置一个特定的大小,但我没有这样做。我尝试了CMainFrame类中的代码:
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
if( !CFrameWndEx::PreCreateWindow(cs) )
return FALSE;
cs.style = WS_OVERLAPPED | WS_SYSMENU | WS_BORDER;
cs.cy = 600;
cs.cx = 600;
cs.y = ((cs.cy * 3) - cs.cy) / 2;
cs.x = ((cs.cx * 3) - cs.cx) / 2;
return CFrameWnd::PreCreateWindow(cs);
}
窗口仍然保持其大小,但没有任何变化。
就我而言,我可以覆盖CWnd类中的相应函数以获得相同的结果。鉴于我在程序中直到现在才使用CWnd类,我该怎么做?
答案 0 :(得分:0)
将您的代码移到CFrameWndEx::PreCreateWindow
答案 1 :(得分:0)
您的课程是否真的来自CFrameWndEx?那是您在IMPLEMENT_DYNANIC / IMPLEMENT_DYNCREATE行中的课程吗?在BEGIN_MESSSAGE_MAP行?
还要考虑在您的消息地图中添加ON_WM_CREATE
及其OnCreate
方法以允许其他可能性:
在这个新方法中做类似的事情。
在此使用SetWindowPos