在MFC中如何设置窗口的初始大小?

在MFC中如何设置窗口的初始大小?

检举|2009-03-10 09:05 MaigoAkisame  |  分类:VC++  |  浏览4812次
在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类的成员变量了,如果需要设置的窗口大小依赖于这些变量,又该怎么办?
我有更好的答案
提问者采纳
2009-03-14 08:57
如果在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;
}
评论(1) | 18

魔高丈    |十四级采纳率55%

擅长:VC++编程语言天津C/C++

按默认排序|按时间排序

其他3条回答

2009-03-17 13:16 ypxmaomao |七级
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;
}
评论 | 0
查看更多其他回答
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值