私は、別のダイアログ内に配置したいダイアログと、メインダイアログのコントロールの1つを基準にして配置したいダイアログを持っています。SetWindowPos()関数はウィンドウを移動しませんか?
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は)私が去ることはできませんリソースエディタで私のSetWindowPos()(と少しのプロパティ]タブをオーバーライドしているように見えるX POSおよびY順位と呼ばれる性質を有していることですこれらの空白)。これらのプロパティを0、0に設定すると、メインダイアログの左上隅にダイアログが表示されます。私がそれらを数に設定すると、私が推測しているところにある推測とテストが大雑把に行われますが、異なる解像度でアプリケーションを実行すると、ダイアログが別の場所に表示されます。とにかく私が本当にやりたいことは、私のメインダイアログ(この場合は私のタブコントロール)上の別のコントロールに相対的なダイアログを配置することです。私のSetWindowPos()が無視される理由は何ですか?私は別の機能を使用すべきですか?
うわー、それはとても奇妙な...ありがとう!私はそれがなぜそんなに無視されるのだろうと思っていた。 – Lauren
ええ、一見一見それは変です。しかし、実際に移動することを心配することなく、SetWindowPosを他のフラグのいくつかに使用することができます(Zオーダーを変更したいときなど)。 –