MFC VC怎么获取CDialog对话框的t位置?插件中的属性页怎么设计可以跟随主框拖动?大家快快进来给建议,高分.
MFC VC如何获取CDialog对话框的t位置?插件中的属性页如何设计可以跟随主框拖动?大家快快进来给建议,高分在线等....
二次开发中,在主应用程序(非开源)和插件对话框环境下,是否无法准确获取插件对话框的CRect位置。
本需求是对属性页的主对话框拖动,属性页对话框跟着移动,如下图:

拖动:

问题1:拖动错位,如何解决,或者不用对话框作为属性页还有什么可行的方法,求教?
1.在插件类中调用对话框类(CMoveSiteDlg):
CMoveSiteDlg m_dlg;
m_dlg.DoModal();
2.在CMoveSiteDlg类中:
CTabSheet m_tabCtrl;//属性页变量
CDlg1 m_dlg1;//属性页1的对话框
CDlg2 m_dlg2;//属性页2的对话框
//消息处理函数
LRESULT CMoveSiteDlg::OnMovingDlg(WPARAM wParam, LPARAM lParam)
{
CRect tabRect,itemRect;
/*GetDlgItem(IDD_DIALOG1)*/this->GetClientRect(&tabRect);//问题2:此处无法获取CMoveSiteDlg类的位置,why?
m_tabCtrl.GetItemRect(0,&itemRect);
m_tabCtrl.SetRect(1,tabRect,itemRect);//根据CRect的值设置CDlg1 CDlg2跟着主对话框移动。
return 0;
}
希望大家给些建议,不胜感激
。
------解决方案--------------------
1、在MFC中可以试试Tab控件
二次开发中,在主应用程序(非开源)和插件对话框环境下,是否无法准确获取插件对话框的CRect位置。
本需求是对属性页的主对话框拖动,属性页对话框跟着移动,如下图:
拖动:
问题1:拖动错位,如何解决,或者不用对话框作为属性页还有什么可行的方法,求教?
1.在插件类中调用对话框类(CMoveSiteDlg):
CMoveSiteDlg m_dlg;
m_dlg.DoModal();
2.在CMoveSiteDlg类中:
CTabSheet m_tabCtrl;//属性页变量
CDlg1 m_dlg1;//属性页1的对话框
CDlg2 m_dlg2;//属性页2的对话框
//消息处理函数
LRESULT CMoveSiteDlg::OnMovingDlg(WPARAM wParam, LPARAM lParam)
{
CRect tabRect,itemRect;
/*GetDlgItem(IDD_DIALOG1)*/this->GetClientRect(&tabRect);//问题2:此处无法获取CMoveSiteDlg类的位置,why?
m_tabCtrl.GetItemRect(0,&itemRect);
m_tabCtrl.SetRect(1,tabRect,itemRect);//根据CRect的值设置CDlg1 CDlg2跟着主对话框移动。
return 0;
}
希望大家给些建议,不胜感激
------解决方案--------------------
1、在MFC中可以试试Tab控件