Bei CFrameWnd - welche message wenn komplett initialisiert
-
Ich habe eine Frage:
Welche Message wird gefeuert, wenn ein CFrameWnd imt create erzeugt wird und
komplett initialsiert ist. Ich müsste zu diesem Zeitpunkt meine Buttons und
Labels auf dem Fenster abhängig von der Fenstergröße plazieren.Danke
mfG, Martin
-
WM_CREATE
-
Genauer gesagt, im CFrameWnd handler für WM_CREATE zuerst Basisklassenimplementation aufrufen, dann dein Zeugs machen.
-
Ich arbeite mit Mappings (dc.SetViewportExt), um meine Grafikauskabe am Bildschirm den Größenverhältinissen anzupassen. Die nachfolgende Funktion wird bei jedem onPaint aufgerufen.
Außer der Grafik habe ich auch noch Buttons auf meinem Fenster, welche ich auch richtig positionieren möchte. Beim verändern der Fenstergröße (Size) funktionieren die Mappings einwandfrei - nur beim initialisieren des Fensters habe ich ein Problem. In welches Event muß ich mich hineinhängen? (onPaint is schlecht, da das Fenster ständig flackert)Danke
Nachfolgend die Funktion:
void CDetailWindow::SetScreenMapping(CDC& dc)
{
// *** MAPPING *************************************
// Abbildungsmodus festlegen
// isotrop: verzerrungsfrei
dc.SetMapMode(MM_ISOTROPIC);// logische Koordinaten definieren
CRect rcOutput;
GetWindowRect(rcOutput);
ScreenToClient(rcOutput);
dc.SetWindowExt(rcOutput.Size());
//dc.SetWindowOrg(rcOutput.TopLeft());// physikalische Koordinaten definieren
double dfactor = (double)(rcOutput.Width()-20) /(double)(10 + 716 + xMehr8);
dc.SetViewportExt((int)(rcOutput.Size().cx * dfactor),
(int)(rcOutput.Size().cy * dfactor));
//dc.SetViewportOrg(rcOutput.TopLeft());
// *** MAPPING *************************************
}
-
Was ist das Problem? Was willst Du wirklich erreichen?
-
Hab den Programm-Fehler schon gefunden.
Danke