Probleme und Fragen zu CSplitterWnd?
-
CSingleDocTemplate* pDocTemplate; pDocTemplate = new CSingleDocTemplate( IDR_MAINFRAME, RUNTIME_CLASS(Csdi3Doc), RUNTIME_CLASS(CMainFrame), // Haupt-SDI-Rahmenfenster RUNTIME_CLASS(Csdi3View)); if (!pDocTemplate) return FALSE; AddDocTemplate(pDocTemplate);da hier wird in der main cpp aufgerufen... in der InitInstance...
-
Eben! Da Du einen Spiltter verwendest möchtest Du nicht das zusätzlich auch noch ein View in dem Frame neben deinem Splitter erzeugt wird.
Also Zeile 3-4 weg!
-
wieso zeilen 3-4? du meinst zeile 6 oder? sorry versteh das nich ganz

-
Also noch mal zum Mitschreiben:
1. Du hast ein Splitterwindow in dem die Views angezeigt werden
2. Die normale CFrameWnd::OnCreate Funktion erzeugt aber den View auch, der für ein Doc-Template angegeben wurde. Das willst Du aber nicht.
3. Deshalb Zeile 3-4 weg!Meine Güte debugge doch mal in den Sourcecode der MFC, dann siehst Du was passiert.
Irgedwie ist mein Sanguinik-Rating auf 300%

-
tja martin... da musst du druch...;) es werden noch viele fragen meinerseits kommen;)
-
So hab jetzt wieder bischen zeit für mfc;) lol.. ich dachte zeile 3-4 in meinem zweiten code fetzen bei dem DocTemplate^^ das hätte ja keinen Sinn gemacht..
Aber nun noch eine Frage:
Die CHolderView klasse hat ja jetzt kein Doc klases zugewiesen bekommen ? dachte Views könenn ohne Doc's nich exisitieren?
über die CSingleDocTemplate Klasse wird doch ein Bezug wzischen dokument und View hergestllt.. aber das geschieht ja für die CHolderView klassen nicht!?
-
Das wird normalerweise über den CreateContect geregelt. Du baust aber die CCreateContext Klasse falsch auf.
BTW: Die Klasse wird auch im lpCreateStruct durch das Framework korrekt übergeben.Wenn Du als Document NULL übergibst, wirst Du irgendwann in jedem Fall gegen die Wand fahren! Ein View benötigt immer ein Dokument!
-
auser wenn ich eine SDI anwendung erstelle ohne das (Doc/View) gedöns oder? dann wird ja ein view ohne doc in den clientbereich des mainframes eingebaut
-
BorisDieKlinge schrieb:
auser wenn ich eine SDI anwendung erstelle ohne das (Doc/View) gedöns oder? dann wird ja ein view ohne doc in den clientbereich des mainframes eingebaut
Und warum bitte nimmst Du dann einen View? Du hast dann ein Fenster!
-
ne sorry bin doch bischen am rumprobieren in meinem anderen beitrag mit dem Onsize hab ich eine SDI ohne Doc/View option gemacht (wusste nich das das auch geht:( )