首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

拆分窗口的最大化显示有关问题

2012-03-06 
拆分窗口的最大化显示问题请各位帮忙看一下我的这个程序,我先把窗口拆分成左右2个子窗口,下面是部分代码:i

拆分窗口的最大化显示问题
请各位帮忙看一下我的这个程序,我先把窗口拆分成左右2个子窗口,下面是部分代码:
if(!m_wndSplitter.CreateStatic(this,1,2))
{
    return   FALSE;
}
    CRect   rect;
    GetClientRect(&rect);
    m_wndSplitter.CreateView(0,0,RUNTIME_CLASS(CImageView),CSize(rect.Width()*7/10,   rect.Height()),pContext);
    m_wndSplitter.CreateView(0,1,RUNTIME_CLASS(CDataView),CSize(rect.Width()-rect.Width()*7/10,   rect.Height()),pContext);  
    return   TRUE;
就是7:3的比例拆分,程序运行显示没问题,但是当我点了最大化按钮以后,拆分的两部分比例好象变成5:5了,这是为什么,该怎么解决啊?帮帮忙,要在哪个地方加什么代码呢?

[解决办法]
OnSize 里面的参数cx cy就是window的rect。Width()
你打上断点看看
我测试发现问题出在m_wndSplitter.SetColumnInfo(0, rect.Width()*7/10, 0);
好像是非法调用函数,传入的参数0(列)有问题,等待答案
[解决办法]
完美解决方案
void CMainFrame::OnSize(UINT nType, int cx, int cy)
{
CFrameWnd::OnSize(nType, cx, cy);

// TODO: Add your message handler code here

if(!m_wndSplitter.IsWindowVisible()) //防止启动出错
return;

m_wndSplitter.SetColumnInfo(0, cx*7/10, 0);//没有必要设置第二列
m_wndSplitter.RecalcLayout();

}

热点排行