我有一个对话框,我想将其放置在另一个对话框中,并相对于主对话框上的其中一个控件进行定位。
void CspAceDlg::DrawResultsArea()
{
CWnd* pTabCtl = GetDlgItem(IDC_BUILDTABS);
CRect rectTabCtl; // Allocate CRect for control's position.
pTabCtl->GetWindowRect(&rectTabCtl);
int resX = rectTabCtl.right + 15;
int resY = rectTabCtl.top;
//RESULTS AREA
results.Create(IDD_RESULTSDIALOG, this);
results.SetWindowPos(this, resX, resY, /*608, 19, */175, 135, SWP_SHOWWINDOW);
results.ShowWindow(SW_SHOW);
}
我的问题是我的对话框资源(IDD_REULTSDIALOG)具有名为 X Pos 和 Y Pos 的属性,它们似乎覆盖了我的 SetWindowPos() (资源编辑器中的小属性选项卡不允许我将这些属性留空)。如果我将这些属性设置为 0, 0,我的对话框将显示在主对话框的左上角。如果我将它们设置为一个数字,我可以猜测并测试将其大致放置在我想要的位置,但随后在不同的分辨率上运行应用程序会导致对话框出现在不同的位置。无论如何,我真正想做的是将对话框相对于主对话框上的另一个控件(在本例中是我的选项卡控件)放置。为什么我的 SetWindowPos() 被忽略,如何解决这个问题?我应该使用不同的功能吗?
根据文档设置窗口位置 http://msdn.microsoft.com/en-us/library/ms633545(VS.85).aspx,如果传入SWP SHOW WINDOW,则窗口不会移动:
如果设置了 SWP_SHOWWINDOW 或 SWP_HIDEWINDOW 标志,则无法移动窗口或调整窗口大小。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)