eingebetete Dialog positionieren
-
Hallo allerseits,
ich versuche einen neuen Dialog(IDD_VIEWER_DIALOG) in einem Textcontrol(IDC_SWAPPLACEDUMMYEDIT) des Hauptdialoges(IDD_ZR_DIALOG) zu öffnen.
Funktionsinhalt:
// mit pdlg = (CDialog*)&m_ViewerEdit CRect rc; GetDlgItem(IDC_SWAPPLACEDUMMYEDIT)->GetWindowRect(&rc); ScreenToClient(&rc); p_dlg->Create(IDD_VIEWER_DIALOG, this); p_dlg->ModifyStyleEx(0, WS_EX_CONTROLPARENT); p_dlg->ModifyStyle(0, WS_TABSTOP); p_dlg->SetWindowPos(NULL, rc.left, rc.top, 0, 0, SWP_NOZORDER|SWP_NOSIZE|SWP_SHOWWINDOW);leider funktioniert die positionierung nich richtig, kann mir jemand sagen was da schief läuft?
-
Ich glaube, du hast Breite und Höhe auf 0 gesetzt.
p_dlg->SetWindowPos(NULL, rc.left, rc.top, 0, 0,
SWP_NOZORDER|SWP_NOSIZE|SWP_SHOWWINDOW);
-
danke, doch leider tut dies auch nicht:
p_dlg->SetWindowPos(NULL, rc.left, rc.top, 315, 213, SWP_NOZORDER|SWP_NOSIZE|SWP_SHOWWINDOW);zwar wird das IDD_VIEWER_DIALOG angezeigt aber als Popupfenster und nicht in dem IDC_SWAPPLACEDUMMYEDIT.
-
Das Dialog Template muss den Stil WS_CHILD haben!
Allerdings innerhalb eines Edit Control einen Dialog zu erzeugen kann zu diversen Anzeigeproblemen führen. Edit Controls sind nicht dafür gebaut Childs zu hosten.