Wie kann ich eine MFC CFormView innerhalb einer CDockablePane platzieren, die im VS 2008 MFC Feature Pack eingeführt wurde?
Antworten
Zu viele Anzeigen?Prüfen Sie die BCGSoft Beispiele dafür, wie man dies mit einem cview macht. Die Klassennamen sind ein wenig anders, aber es ist mehr oder weniger das gleiche Zeug, da sie CDockablePane zu Microsoft zur Verfügung gestellt.
Es gibt ein Beispiel für das Feature Pack, das dies tut.
Ich mache jedoch Folgendes: Ich habe eine von CDialog abgeleitete Klasse erstellt, die ich in das DockablePane einfüge. Dann erstelle ich eine von CFormView abgeleitete Klasse und mache eine Instanz davon zu einer Mitgliedsvariablen des andockbaren Fensters. Jede Funktion, an der ich interessiert bin (höchstwahrscheinlich UpdateView() oder wie auch immer sie heißt), leite ich an die von CDialog abgeleitete Klasse weiter. Auf diese Weise kann ich die Schwierigkeiten umgehen, die sich ergeben, wenn ich die Doc/View-Struktur in meine Anwendung einbauen muss, und trotzdem die Vorteile nutzen.
Es gibt mehrere Möglichkeiten, dies zu tun.
Wenn Sie Ihre eigene CFameWnd-Klasse ableiten und dann eine Instanz dieser Klasse in das CDockable-Fenster einfügen, können Sie nun jede beliebige Art von Framework innerhalb dieser abgeleiteten CFrameWnd-Klasse einfügen.
Der Trick besteht darin, darauf zu achten, dass man die Erstellung in der richtigen Reihenfolge vornimmt. Wenn Sie versuchen, es zu früh aufzurufen, werden Ihre internen Ansichten nie erstellt.
Wahrscheinlich ist dies ein Anhaltspunkt.
http://www.codeproject.com/KB/toolbars/sizecbar.aspx
Obwohl es nicht CDockablePane verwendet, ist das Konzept dahinter gleich. Ich habe nicht versucht, CDockablePane und CFormView Arbeit wie die in der Seite noch erklärt, aber mit einem Blick auf sie, ich fühle, dass die Dinge ähnlich sind.