控件随CSplitterWnd、窗口变化大小的问题

beyond8820 2005-12-02 11:00:09
在一个视图界面中,采用CSplitterWnd来分割窗口,但是有一个问题,移动CSplitterWnd的时候,控件大小并不随着变化,
而且,改变主窗口大小的时候,控件大小和位置也不随着变化。我加了一个listctrl控件,在下面加了几个button。改变主窗口大小的时候,button就看不到了。
代码如下:
OnSize(UINT nType, int cx, int cy)
{
CDialog::OnSize(nType, cx, cy);

CRect rect;

pWnd=GetDlgItem(IDC_LIST_DOCUMENT);
if (pWnd)
{
m_documentList.GetWindowRect(&rect);
ScreenToClient(&rect);

rect.right = cx-5;
rect.bottom = cy-30;

m_documentList.MoveWindow(&rect);

}

pWnd=GetDlgItem(IDC_BUTTON_ADD);
if (pWnd)
{
pWnd->GetWindowRect(&rect);
ScreenToClient(&rect);
rect.right=cx-20;
rect.bottom=cy-10;
pWnd->MoveWindow(&rect);
}
}
请指教。
...全文
237 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
菜牛 2005-12-02
  • 打赏
  • 举报
回复
比如说,你的右面视图是CxyzView,那么就应该在CxyzView::OnSize()里面调整CxyzView的子控件的位置。
beyond8820 2005-12-02
  • 打赏
  • 举报
回复
我只是把函数内部的代码贴出来了。这个界面结构是一个视图形式。
xiaoqiqixiao 2005-12-02
  • 打赏
  • 举报
回复
建议自己学着设几个断点调试调试
你分割的窗口不是CView类吗,怎么有
CDialog::OnSize(nType, cx, cy);
beyond8820 2005-12-02
  • 打赏
  • 举报
回复
不懂,每个分割窗口?我们的程序都是在一个onsize里实现的,这样将,不是应该有多个onsize?

怎么设置控件的位置那?
Pipi0714 2005-12-02
  • 打赏
  • 举报
回复
在每个分割窗口的WM_SIZE处理它里面的控件的移动
beyond8820 2005-12-02
  • 打赏
  • 举报
回复
我的这个界面其实是由CDialog派生来的,在里面加上了分隔窗口的类CSplitterWnd,把整个界面分成两部分。
我上面没有说清楚,抱歉。

15,978

社区成员

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

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