Nicht-modalen Dialog zentrieren?
-
Wie zentriere ich einen nicht-modalen Dialog? Ich habe ein Hauptprogramm, aus welchem ich einen nicht-modalen Dialog folgendermaßen aufrufe:
CMyDlg *pDlg; pDlg = new CMyDlg(); if (pDlg != NULL) { bool bDlg = pDlg->Create(IDD_DIALOG, this); pDlg->ShowWindow(SW_SHOW); } // ... delete pDlg;Das funktioniert auch wunderbar, nur leider positioniert sich dieser Dialog genau in der linken oberen Ecke (unter der Titelleiste) des Hauptdialogs. Ich habe mir bereits CDialog::SetWindowPos() angesehen, werde aber nicht so recht schlau daraus. Danke!
zony
-
Moin, moin,
also meiner Meinung nach kann man das im Ressourcen Editor in den Eigenschaften des Dialogfeldes einstellen. Da gibt es eine Option "Zentriert", die auf "True" setzten... -> passt!
PS.: die beiden Einstellungen darüber dürften dein bisheriges "links-oben" Problemchen erklären...
mfg
-
Servus,
ganz einfach. Eine Möglichkeit ist im Resource Editor diesen Dialog mit der ID auszuwählen und dann die Eigenschaft "Center" auf True setzt.
*winke*
Hellsgore
-
Oh mann, wie dämlich von mir. Vielen Dank!!

zony
-
zony schrieb:
CMyDlg *pDlg; pDlg = new CMyDlg(); if (pDlg != NULL) { bool bDlg = pDlg->Create(IDD_DIALOG, this); pDlg->ShowWindow(SW_SHOW); } // ... delete pDlg;Du kannst auch im Programm nach der Zeile
pDlg->ShowWindow(SW_SHOW);mit
pDlg->CenterWindow();den Dialog zentrieren!
VG sachse98