SDI Mainframe ClientRect Frage?
-
Hallo Leute,
ich habe eine simple SDI Anwendung in MFC generiert. Und Möchte nun ein eigenes CWnd Abgeleitest fenster in das CMainframe anzeigen lassen. Das Problem hierbei ist , das dass Mainframe Fesnter eine Toolbar und eine Statusbar hat, welche sich im Clientbereich des fenster befinden. Wie kann ich es anstellen, das sich mein CWnd in der größe bzw. Position dem noch übrigen "weisen" bereich anpasst. Auch wenn ich die Toolbar aus dem Fensterziehe und wieder andocken lasse??
-
Leiete Deine Fenster, dss Du anlegen möchtest einfach als CView KLasse ab und gut ist.
Schmeiß den Wizard an, erzeuge eine SDI Applikation mit Doc/View und der Views ist das was Du suchst...
Anonsten ist der Mechanismus in der MFC trickreich. Es wird einfach dem Fenster mit der ID AFX_IDW_PANE_FIRST erhält einfach den Rest!
Ich rate Dir Doc/View zu verwenden! :schland:
-
ok gut, aber dann habe ich ja zwei klassen CView, CDoc und ich brauch wahrscheinlich nur CView, erzeuge mein CWnd objet in der OnCreate und arbeite dann mit der OnSize Methode der CView ... seh ich das richtig
:schland: :schland:
-
Und warum nimmst Du CView nicht direkt? CView ist auch ein CWnd?
Ansonsten Erzeuge mit dem Wizard selberein SDI (Ist dann aber nicht mehr SDI) ohne Doc/View.Das Doc/View Modell hat viele Vorteile, das größte mit Sicherheit: TRennung von Daten und Ansicht.
-
achsoo.. du meinst ich soll ne normale SDI anwendung machen ohne den CDocument/CView gedösn, und dann meine ableitete CView Klasse in den Clientbereich zeichnen?
:schland: :schland:
-
Arg... Nein!
Entweder Doc/VIew und du packst alles für dein CWnd in Deine neue View Klasse.
Oder Du machst eben kein SDI/Doc/View und alles selber... Schau doch mal auf den Code, den der Wizard Dir erzeugt!
-
jaa sorry.. das hab ich grad getan, hab mal testweise ein button in das CView Objekt reingehaun:) geht auch .. und es passt sich auch schön an? Meine Frage war allerdings, ob ich die CDoc Klasse rauswerfen kann??
-
Nein! Ein CView braucht immer ein CDocument!
-
ok danke martin.. d.h. es ist kein schlechter still wenn ich das CView Feld als Fenster bzw. verwende, und das CDoc einfach ignoiere?
grüße
-
Dinge die aus designgründen weggelassen oder zweckmässig durch Dummies ersetzt werden, und gut dokumentiert sind, sind selten schlechter Stil...
Just my 2 cents!
-
ok chef
:schland: thxP.P.: die CMemDC klasse welche du mir empfholen hast funktioniert einwandfrei;)
-
BorisDieKlinge schrieb:
ok chef
:schland: thx... sei froh, dass ich Deiner nicht bin

-
... sei froh, dass ich Deiner nicht bin

hehe... sei lieber froh das so ein Vogel wie mich nicht als programmier hast
:schland: