Ich möchte CDialog
innerhalb CDockablePane
hinzufügen, wenn ich CDialog.DoModal() verwende, macht es die MFC-Anwendung nicht mehr reagieren und auf das CDialog-Ergebnis warten. Wie kann ich die Anwendung weiter laufen lassen, ohne auf das CDialog-Ergebnis zu warten? Vielen Dank im Voraus.Hinzufügen von CDialog in CDockablePane
0
A
Antwort
1
Sie können DoModal
nicht verwenden, um den Dialog anzuzeigen. Dies zeigt einen modalen Dialog an, der die Interaktion mit anderen Fenstern in Ihrer Anwendung verhindert, bis der Dialog geschlossen wurde. Genau wie eine Message Box.
Um einen nicht-modalen Dialog anzuzeigen, rufen Sie die Elementfunktion Create
auf. Verwenden Sie die Instanz Ihres CDockablePane
als das übergeordnete Element des Dialogfelds. Sie müssen außerdem sicherstellen, dass das Dialogfeld selbst ein untergeordnetes Fenster ohne Rahmen ist.
Es könnte einfacher sein, eine von CFormView
oder CPaneDialog
abgeleitete Klasse zu verwenden.
Dank für Ihre Antwort, jetzt verwende ich eine Klasse von 'CPaneDialog' abgeleitet, wie Sie vorschlagen, wie folgt aus: ' m_DlgInsidePane.Create (_T ("Guide"), dies, FALSCH, IDD_DLG_TEST_IN_PANE, WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | CBRS_LEFT | CBRS_FLOAT_MULTI, 0) ', aber das Dialogfeld wird nicht angezeigt. @Cody Gray –
Nach der Erstellung hinzufügen: m_DlgInsidePane.ShowWindow (SW_SHOW); – Ramunas