tab控件上的子对话框如何随着主对话框缩放?

puj2003 2014-11-04 04:07:36
m_tab.InsertItem(0, _T("统计")); 
m_trafficstaticDlg.Create(IDD_TRAFFICSTATIC_DIALOG, &m_tab); 其中m_tab为CTabCtrl变量,m_trafficstaticDlg是其中的子对话框,IDD_TRAFFICSTATIC_DIALOG是指对话框ID。现在只能实现tab控件随主窗口变化,代码如下:
void CTrafficControlServerDlg::OnSize(UINT nType, int cx, int cy)
{
CDialogEx::OnSize(nType, cx, cy);

// TODO: 在此处添加消息处理程序代码
CWnd *pWnd;
pWnd = GetDlgItem(IDC_TAB1); // Tab标签控件
ChangeDialogSize(nType,cx,cy,pWnd);
}
void CTrafficControlServerDlg::ChangeDialogSize(UINT nType,int cx, int cy,CWnd *pWnd)
{
if(pWnd && nType!=1)//判断是否为空,因为对话框创建时会调用此函数,而当时控件还未创建
{
CRect rect; //获取控件变化前大小
pWnd->GetWindowRect(&rect);
ScreenToClient(&rect); //将控件大小转换为在对话框中的区域坐标
rect.left=rect.left*cx/m_rect.Width(); //调整控件大小
rect.right=rect.right*cx/m_rect.Width();
rect.top=rect.top*cy/m_rect.Height();
rect.bottom=rect.bottom*cy/m_rect.Height();
pWnd->MoveWindow(rect); //设置控件大小
}
}

子对话框仍是原来大小,网上很多资料讲的不详细,如果我搞定了一定把完整的代码贴出来
...全文
235 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
schlafenhamster 2014-11-09
  • 打赏
  • 举报
回复
void CTabDlgDlg::OnSize(UINT nType, int cx, int cy) { CDialog::OnSize(nType, cx, cy); // TODO: Add your message handler code here int now; if(m_Tab.m_hWnd) {// m_Tab.SendMessage(WM_SIZE,(WPARAM)nType,MAKELONG(cx, cy)); now=m_Tab.GetCurSel(); if(now==-1) return; } // switch(now) { case 0: if(m_Dlg1.m_hWnd) m_Dlg1.SendMessage(WM_SIZE,(WPARAM)nType,MAKELONG(cx,cy)); break; case 1: if(m_Dlg2.m_hWnd) m_Dlg2.SendMessage(WM_SIZE,(WPARAM)nType,MAKELONG(cx,cy)); break; ...... void CMyTab::OnSize(UINT nType, int cx, int cy) { CTabCtrl::OnSize(nType, cx, cy); // TODO: Add your message handler code here CRect rc; GetWindowRect(&rc); ScreenToClient(&rc); rc.right+=cx; rc.bottom+=cy; MoveWindow(&rc); }
Eleven 2014-11-04
  • 打赏
  • 举报
回复
codeproject上搜索EASYSIZE
微型蚂蚁 2014-11-04
  • 打赏
  • 举报
回复
最终要调用的是对话框对象的MoveWindow
schlafenhamster 2014-11-04
  • 打赏
  • 举报
回复
给 子对话框 发 WM_SIZE 消息

15,979

社区成员

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

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