现在我想做一个属性设置对话框,类似与editplus中 工具->首选项 弹出的对话框的样子。
我是这样计划的 :
1.创建一个公共对话框,在此对话框上放置一个static控件,用该控件(A)来占据一个位置.
2.公共对话框在生成的时候,生成数个对话框,占据控件A的位置,覆盖掉控件A,并且同时只有一个对话框显示出来。
代码片段是这样的(目前只有一个对话框覆盖掉控件A):
CWnd* pWnd = this->GetDlgItem(IDC_STATIC_1);
assert(pWnd);
RECT wndRect;
pWnd->GetWindowRect(&wndRect);
_dlgSetFont.Create(IDD_DLG_SET_FONT, NULL);
_dlgSetFont.SetWindowPos(&wndTop, wndRect.left, wndRect.top,
wndRect.right - wndRect.left, wndRect.bottom - wndRect.top, SWP_NOZORDER | SWP_SHOWWINDOW);
_dlgSetFont.ShowWindow(SW_SHOW);
其中‘IDC_STATIC_1’是控件A的ID,纯粹是给其它对话框占据一个位置。
‘_dlgSetFont’是一个CDialog的扩展类,提供界面来给用户调整设置。
目前的问题是,
首先,生成的对话框‘_dlgSetFont’位于公共对话框的后面(看MSDN,wndTop参数应该保证了该对话框位于公共对话框的前面)
其次,生成的对话框'_dlgSetFont'的位置也有一点偏移,并不是正好覆盖掉控件'IDC_STATIC_1'.
所以请教下大家,我应该怎么做,才能达到目的。