我分割视图,每个视图都设置好了相对位置、比例大小。在框架类的OnSize函数里也设置了大小,这样在拖动窗口大小的时候,每个视图会跟着一起等比例的改变大小。
现在的问题是,我不拖动窗口,只是按下窗口的最大化、还原按键,那些视图就不会按照之前设置的大小关系跟着一起等比例的变化。怎么解决这个问题?我要在什么消息响应中做修改?谢谢。
现在的问题是,我不拖动窗口,只是按下窗口的最大化、还原按键,那些视图就不会按照之前设置的大小关系跟着一起等比例的变化。怎么解决这个问题?我要在什么消息响应中做修改?谢谢。
解决方案 »
- Expression:(L"String is not null terminated" && 0)问题
- BYTE *pData 这样的数据怎么保存到数据库中
- 急急!!编的一个小程序,发送的邮件为什么总是收不能呢????
- MDI中VIEW关闭问题
- debug完全正确release却错误,怎么回事啊。。
- 修改顶级菜单
- 是高手就进来帮我然后拿分,少给我罗嗦
- IE编程:用过Browse helper object(BHOs)的或其它IE编程的朋友进来一下!散分交友。
- 怎么写一个程序让一开机就运行?
- 请问自动化高手,为什么我的自动化Word应用在98下那么慢,光标移动一位,我都得看一会儿,2k下就快好多
- 状态栏出来了,但设置状态栏的此句话为何没有起作用?
- CString转换LPCOLESTR然后再转换LPCTSTR
{
CFrameWnd::OnSize(nType, cx, cy);
// TODO: Add your message handler code here
CRect rect;
GetClientRect(&rect);
if (m_bCreateSplitter)
{
m_wndSplit1.SetRowInfo(0,rect.Height()*4/5,0);
m_wndSplit2.SetColumnInfo(0,rect.Width()/4,0);
m_wndSplit3.SetRowInfo(0, rect.Height()*3/5,0);
}
}
加上RecalcLayout()试试;void CMainFrame::OnSize(UINT nType, int cx, int cy)
{
CFrameWnd::OnSize(nType, cx, cy);// TODO: Add your message handler code here
//CRect rect;
//GetClientRect(&rect);
if (m_bCreateSplitter)
{
m_wndSplit1.SetRowInfo(0, cy*4/5, 0);
m_wndSplit2.SetColumnInfo(0, cx/4, 0);
m_wndSplit3.SetRowInfo(0, cy*3/5, 0); m_wndSplit1.RecalcLayout();
m_wndSplit2.RecalcLayout();
m_wndSplit3.RecalcLayout();
}
}
可以了,谢谢你。
顺便问一下,为什么拖动的时候不加RecalcLayout()没事,而最大化的时候不加RecalcLayout()就不能正常的显示呢?