在MFC中如何设置窗口的初始大小?
在MainFrame的PreCreateWindow里面设置cs的cx与cy不起作用。怎么办?To魔高丈:起作用了。之前我粗心,是在CJigsawView类的PreCre...
在MainFrame的PreCreateWindow里面设置cs的cx与cy不起作用。怎么办?
To 魔高丈:
起作用了。之前我粗心,是在CJigsawView类的PreCreateWindow里设的(我的工程名为Jigsaw)。
不过我现在还有若干个问题不明白,望指教:
1. CJigsawView::PreCreateWindow跟CMainFrame::PreCreateWindow是什么关系?
2. 为什么对cs的成员变量的设置可以放在对CFrameWnd::PreCreateWindow的调用之后呢?我试过,放在它之前和之后都是有效的,但我感觉放在后面的话,做的修改也没有被return出去,怎么会有效呢?
3. cs的cx和cy对应的是整个窗口的大小,那么如果想指定窗口内编辑区的大小该怎么办?
4. 我的程序的变量都作为CJigsawView类的成员变量了,如果需要设置的窗口大小依赖于这些变量,又该怎么办? 展开
To 魔高丈:
起作用了。之前我粗心,是在CJigsawView类的PreCreateWindow里设的(我的工程名为Jigsaw)。
不过我现在还有若干个问题不明白,望指教:
1. CJigsawView::PreCreateWindow跟CMainFrame::PreCreateWindow是什么关系?
2. 为什么对cs的成员变量的设置可以放在对CFrameWnd::PreCreateWindow的调用之后呢?我试过,放在它之前和之后都是有效的,但我感觉放在后面的话,做的修改也没有被return出去,怎么会有效呢?
3. cs的cx和cy对应的是整个窗口的大小,那么如果想指定窗口内编辑区的大小该怎么办?
4. 我的程序的变量都作为CJigsawView类的成员变量了,如果需要设置的窗口大小依赖于这些变量,又该怎么办? 展开
4个回答
展开全部
如果在App的InitInstance中有:
m_pMainWnd->ShowWindow(SW_SHOWMAXIMIZED);
要现将这一句改为
m_pMainWnd->ShowWindow(SW_SHOW);
否则,在MainFrame的PreCreateWindow里面设置cs的cx与cy不起作用
补充:不知道你的PreCreateWindow是怎么样写的,设置的位置对吗
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
if( !CFrameWnd::PreCreateWindow(cs) )
return FALSE;
// TODO: Modify the Window class or styles here by modifying
// the CREATESTRUCT cs
cs.cx = 100;
cs.cy = 100;
return TRUE;
}
m_pMainWnd->ShowWindow(SW_SHOWMAXIMIZED);
要现将这一句改为
m_pMainWnd->ShowWindow(SW_SHOW);
否则,在MainFrame的PreCreateWindow里面设置cs的cx与cy不起作用
补充:不知道你的PreCreateWindow是怎么样写的,设置的位置对吗
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
if( !CFrameWnd::PreCreateWindow(cs) )
return FALSE;
// TODO: Modify the Window class or styles here by modifying
// the CREATESTRUCT cs
cs.cx = 100;
cs.cy = 100;
return TRUE;
}
展开全部
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
if( !CFrameWnd::PreCreateWindow(cs) )
return FALSE;
// TODO: Modify the Window class or styles here by modifying
// the CREATESTRUCT cs
cs.cx=1000;
cs.cy=620;
return TRUE;
}
{
if( !CFrameWnd::PreCreateWindow(cs) )
return FALSE;
// TODO: Modify the Window class or styles here by modifying
// the CREATESTRUCT cs
cs.cx=1000;
cs.cy=620;
return TRUE;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
pWnd->SetWindowPos(NULL, 0, 0, newWidth, newHeight, SWP_NOZORDER | SWP_NOMOVE); 用一下这个函数
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
- -! 最简单的设计界面的时候就可以先改撒
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询