Wie dock CPaneDialog zu MainFrm und..?
Problem habe ich mit CPaneDialog.
Getestet habe ich mit SetPaneSize MFC feature pack sample-Projekte. Was ist komisch ist, dass CPaneDialog kann nicht angedockt werden, um MainFrm während CDockablePane werden kann. Die CPaneDialog ist auch eine Kind-Klasse von der CDockablePane, aber kann es nicht sein.
Nur DockToWindow( &other_CPaneDialog_instance... ) ist möglich.
Wenn ich den Anruf DockToPane(), die Inhalt der CPaneDialog ist nicht erstellt oder aktualisiert, richtig.
Wie kann ein CPaneDialog angedockt werden, um MainFrm Fenster?
Ein weiteres problem ist über das zeichnen. Wenn Sie codes für Baum-Kontrolle in der SetPaneSize Beispiel, der Inhalt der view1 ( eine Instanz von CDockablePane) ist nicht ordnungsgemäß neu gezeichnet.
Nach etwas Experimentieren, habe ich beschlossen, dass etwas getan werden sollte, in seiner OnSize und OnPaint-Methode. (OnSize ist wichtiger. ) Ist das erwartete Verhalten?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Umwandlung von HexEdit zu MFC9 (siehe http://www.hexedit.com) ich lief in dieses problem. Getestet habe ich in VS2010 (MFC10) und dieser bug wurde anscheinend behoben.
Beachten Sie auch, dass dieses problem ist nicht eine große Sache, wie Sie können, verwenden Sie einfach DockToWindow in CMainFrame::OnCreate-auf-dock zu einem CDockablePane (falls Sie eine haben). Die Benutzer können Schwimmer das Fenster oder das dock, es auch anderswo, und die position wird gespeichert und wiederhergestellt, wenn das Programm erneut geöffnet wird.
Ich bin mir ziemlich sicher, dass jemand neues über diesen bug in MFC9 - daher der offensichtliche workaround im SetPaneSize demo (Aufruf CDockablePane::DockToWindow eher als DockPane verwendet werden wie für alle anderen dockable windows). Aber wenigstens ist es fest in der MFC10.
Anderen bug, den ich gefunden ist, dass, wenn ein CPaneDialog ist schwimmen, wenn geschlossen (ausgeblendet), wenn Sie dann die Anwendung neu starten, der Bereich wieder geöffnet wird, anstatt wieder in die richtige (verborgenen) Staat. Dies tritt nicht auf, wenn das Fenster angedockt ist, wenn Sie geschlossen. Dieser wurde auch behoben, MFC10.
Während der Konvertierung einer älteren MFC-Anwendung, die ich lief in ähnliche Probleme mit dem feature pack. Ich habe nicht die Zeit haben, es zu lösen, richtig, ich habe aber folgenden workaround:
2 Dinge:
Dies gewährleistet eine ordnungsgemäße Bemessung der dialog-und dass der Nutzer ziehen der bar herum.
HTH, es funktionierte für mich.