新建子窗口最大化的问题(打开第二个子窗口也自动最大化)

TianChong 2004-01-14 07:17:46
我的MDI程序FromView视图,现在MDI窗口打开时是设置成最大化的,并且打开后也不会自动新建一个子窗口了,不过当我手动地新建一个子窗口时,这个子窗口不如何设置能让它最大化,注意,不是将窗口拉得充满ChildFrame区域,而是要让它完全最大化,就像是点击了它的最大化接钮一样,我有了这个办法不行:
BOOL CChildFrame::PreCreateWindow(CREATESTRUCT& cs)
{
// TODO: 在此处通过修改 CREATESTRUCT cs 来修改窗口类或样式
cs.style|=WS_MAXIMIZE;
cs.cx = GetSystemMetrics(SM_CXSCREEN);
cs.cy = GetSystemMetrics(SM_CYSCREEN);

if( !CMDIChildWnd::PreCreateWindow(cs) )
return FALSE;

return TRUE;
}
后来又在return TRUE;前面加上:
CMDIChildWnd pChildWnd;
pChildWnd.GetActiveView()->ShowWindow(SW_SHOWMAXIMIZED);
可以编译,但是只是一点击新建子窗口就报错,说某某地址为只读不能写云云,看来又错了,在这里找了一晚,还是没找到解决方法,请各各高手帮帮忙啊。先谢谢各位了。
...全文
311 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
nava 2004-01-14
  • 打赏
  • 举报
回复
BOOL CChildFrame::PreCreateWindow(CREATESTRUCT& cs)
{
if( !CMDIChildWnd::PreCreateWindow(cs) )
return FALSE;

cs.x = 0;
cs.y = 0;
cs.cx = GetSystemMetrics(SM_CXSCREEN);
cs.cy = GetSystemMetrics(SM_CYSCREEN);

cs.style = WS_CHILD | WS_VISIBLE | WS_OVERLAPPED | WS_CAPTION
| FWS_ADDTOTITLE | WS_THICKFRAME ;

return TRUE;
}
TianChong 2004-01-14
  • 打赏
  • 举报
回复
谢谢两位,不过nava(回家了)的代码只能将窗口变得很大,但不是最大化,hahu(网痞 -- 勿近)的方法完全正确。请接分。
hahu 2004-01-14
  • 打赏
  • 举报
回复
有个OnActiveFrame还是什么的
里面参数int cmdShow
改为
cmdShow=SW_MAXIMIZE;
void CChildFrame::ActivateFrame(int nCmdShow)
{
// Create the child frame window maximized
nCmdShow = SW_MAXIMIZE;

CMDIChildWnd::ActivateFrame(nCmdShow);
}

15,978

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧