【发布时间】:2009-06-25 14:37:47
【问题描述】:
我有一个对话框,我想将它放在另一个对话框中,并相对于主对话框上的一个控件进行定位。
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() 被忽略,我该如何解决?我应该使用不同的功能吗?
【问题讨论】:
标签: visual-c++ mfc