建了一个多文档程序,有多个子窗口。通过“window”菜单来选择不同的子窗口。
我想要子窗口一直保持最大,即填满主窗口。我处理了
int CChildFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
void CChildFrame::OnSize(UINT nType, int cx, int cy)
void CChildFrame::ActivateFrame(int nCmdShow) 在这些响应里都加了最大化SW_MAXIMIZE.
可是,开始当窗口不是最大的时候,子窗口都最大化,填满主窗口。可是,这时,再最大化主窗口,只要当前的子窗口最大化,因为通过"window"菜单来选择其他子窗口的时候,虽然会显示相应的子窗口,但是不是最大化的填满最大化的主窗口,而是在主窗口中间,还留有子窗口的边框。也就是说子窗口没有最大化。
各位牛人们,还望帮帮忙啊!!!!!!!!!!!
我想要子窗口一直保持最大,即填满主窗口。我处理了
int CChildFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
void CChildFrame::OnSize(UINT nType, int cx, int cy)
void CChildFrame::ActivateFrame(int nCmdShow) 在这些响应里都加了最大化SW_MAXIMIZE.
可是,开始当窗口不是最大的时候,子窗口都最大化,填满主窗口。可是,这时,再最大化主窗口,只要当前的子窗口最大化,因为通过"window"菜单来选择其他子窗口的时候,虽然会显示相应的子窗口,但是不是最大化的填满最大化的主窗口,而是在主窗口中间,还留有子窗口的边框。也就是说子窗口没有最大化。
各位牛人们,还望帮帮忙啊!!!!!!!!!!!
解决方案 »
- 滚动条控件的疑问?
- 给TREECTRL新增节点但是不能显示更改的名称和保存,急
- dynamic_cast 类指针动态转换的时候有警告信息怎么回事?
- 如何实现98系统开机身份认证,在线等!
- 正在看别人程序,有一处不懂,请问以下语句结果将什么值赋给了dwLenth?为什么?
- 一个简单问题(送分题)!!!!!!
- 如何动态生成clistctrl 控件?
- 如何使多文档的子窗口一打开的时候是隐藏的呢?
- 在WINDOWS98,2000,xp里如何取得指定的串口的IO地址?
- 一个函数里需要返回一个CString数组,怎么能实现?
- 高手请进,如下书写格式:CDockPaneWnd<CStatic> m_wndOptions是什么意思!!!
- 用过appface换肤的大哥,我遇到个问题...
http://search.csdn.net/Expert/topic/1744/1744400.xml?temp=.4831812
ON_COMMAND(ID_SHOW_WND2, OnShowWnd2)
程序可这样写,假设有3个子窗口
m_wnd1.ShowWindow(SW_HIDE);
m_wnd3.ShowWindow(SW_HIDE);
m_wnd2.ShowWindow(SW_MAXIMIZED);
方法一:
在CChildFrame::PreCreateWindow(CREATESTRUCT& cs)函数中,加了
cs.style |= WS_VISIBLE|WS_MAXIMIZE;,可以实现了
方法二:
用ClassWizard为CChildFrame类添加ActiveFrame消息
void CChildFrame::ActivateFrame(int nCmdShow)
{
if(GetMDIFrame()->MDIGetActive())
CMDIChildWnd::ActivateFrame(nCmdShow);
else // else open maximized.
CMDIChildWnd::ActivateFrame(SW_SHOWMAXIMIZED); }
cs.style|=WS_VISIBLE|WS_MAXIMIZE;即可
cs.style|=WS_VISIBLE|WS_MAXIMIZE;即可
// CChildFrame message handlersvoid CChildFrame::ActivateFrame(int nCmdShow)
{
// TODO: Add your specialized code here and/or call the base class
nCmdShow = SW_SHOWMAXIMIZED;
CMDIChildWnd::ActivateFrame(nCmdShow);
}
你只要这样添加即可,记住:是SW_SHOWMAXIMIZED,而不是SW_MAXIMIZE,试试
CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
pSysMenu ->DeleteMenu 或者 EnableMenuItem(×××,FALSE)
也能达到效果
在step4中选择advanced,进入window stayles,把mdi child frame stayle的maximized勾选。然后看看是怎么实现的。