菜鸟问题,各位高手帮帮忙

hrblg313 2004-07-05 03:30:38
我建了个MFC(.exe工程)
SDI,MFC标准的风格
基本class选的是CFormView
我在主form里放了个TreeView和listView
外面form大小变化时(拖动时,或点选toolbar,statusbar时)
让TreeView和listView大小跟着一起
变化行不行,
能不能给个例子
谢谢
...全文
378 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
zkaikai 2005-03-29
  • 打赏
  • 举报
回复
mark
shadowWind 2005-01-12
  • 打赏
  • 举报
回复
mark
LittleLee 2004-08-24
  • 打赏
  • 举报
回复
mark
hrblg313 2004-07-05
  • 打赏
  • 举报
回复
大致了解了谢谢
PiggyXP 2004-07-05
  • 打赏
  • 举报
回复
bohut(伯虎)的就是正确的解决方案!!^_^
Kudeet 2004-07-05
  • 打赏
  • 举报
回复
OnSize消息里,用SetWindowPos或者MoveWindow()来设置控件的大小
bohut 2004-07-05
  • 打赏
  • 举报
回复
没有整理,看起来比较吃力吧?
void COracleAssistView::OnSize(UINT nType, int cx, int cy)
{
CFormView::OnSize(nType, cx, cy);

CRect rect;
GetClientRect(&rect);

int nWidth = rect.Width();
int nLeight = rect.Height();


if(m_edit.GetSafeHwnd())
{

m_edit.SetWindowPos(this,rect.left + nWidth/100,rect.top +nLeight/100,nWidth-nWidth/100*2,nLeight/100*45,SWP_SHOWWINDOW|SWP_NOZORDER);
}

if(m_btnExec.GetSafeHwnd())
{
m_btnExec.SetWindowPos(this,rect.left + nWidth/100*40,
rect.top + nLeight/100*47,nWidth/15,nLeight/100*5 ,SWP_SHOWWINDOW|SWP_NOZORDER);

}

if(m_ctrList.GetSafeHwnd()) //m_ctrlList是listctrl的变量
{

m_ctrList.SetWindowPos(this,rect.left + nWidth/100,
rect.top + nLeight/100*58,nWidth-nWidth/100*2,nLeight/100*52,SWP_SHOWWINDOW|SWP_NOZORDER);

}

}
快乐鹦鹉 2004-07-05
  • 打赏
  • 举报
回复
一个道理,在OnSize中,同时修改Form中所有控件的位置和大小。例子网上应该有吧。
bohut 2004-07-05
  • 打赏
  • 举报
回复
响应WM_SIZE消息:下面是一段例子

void COracleAssistView::OnSize(UINT nType, int cx, int cy)
{
CFormView::OnSize(nType, cx, cy);

CRect rect;
GetClientRect(&rect);

int nWidth = rect.Width();
int nLeight = rect.Height();


if(m_edit.GetSafeHwnd())
{

m_edit.SetWindowPos(this,
rect.left + nWidth/100,
rect.top + nLeight/100,
nWidth-nWidth/100*2,
nLeight/100*45,
SWP_SHOWWINDOW|SWP_NOZORDER
);
}

if(m_btnExec.GetSafeHwnd())
{
m_btnExec.SetWindowPos(this,
rect.left + nWidth/100*40,
rect.top + nLeight/100*47,
nWidth/15,
nLeight/100*5 ,
SWP_SHOWWINDOW|SWP_NOZORDER
);

}

if(m_btnPause.GetSafeHwnd())
{

m_btnPause.SetWindowPos(this,
rect.right - nWidth/100*40,
rect.top + nLeight/100*47,
nWidth/15,
nLeight/100*5 ,
SWP_SHOWWINDOW|SWP_NOZORDER
);
}

if(m_editMsg.GetSafeHwnd())
{

m_editMsg.SetWindowPos(this,
rect.left + nWidth/100,
rect.top + nLeight/100*53,
nWidth-nWidth/100*2,
nLeight/100*4,
SWP_SHOWWINDOW|SWP_NOZORDER
);
}

if(m_ctrList.GetSafeHwnd())
{

m_ctrList.SetWindowPos(this,
rect.left + nWidth/100,
rect.top + nLeight/100*58,
nWidth-nWidth/100*2,
nLeight/100*52,
SWP_SHOWWINDOW|SWP_NOZORDER
);

}

}

15,979

社区成员

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

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