dynamische Größenänderung

michaelwengert

Erfahrenes Mitglied
Morgen zusammen,
habe folgendes Problem:
Ich hab mit der MFC eine Dialoganwendung erstellt. Auf der Form befinden sich mehrere Steuerelemente. Ist es irgendwie möglich, das sich diese Steuerelemnte beim vergrößern des Dialoges dynamisch anpassen, und ihrerseits die Größe auch ändern?

Danke im Vorraus
Michael
 
Ja, da gibt es grundsätzlich zwei Möglichkeiten:

1. Du verpasst deinem Dialog einen Handler für WM_SIZE (OnSize()), worin du dann die Kontrollelemente des Dialogs neu arrangierst. Dazu kannst du zum Beispiel MoveWindow() verwenden. Hier ein Schnipsel aus einem meiner Projekte:
Code:
void CDebugDlg::OnSize(UINT nType, int cx, int cy) 
{
	CDialog::OnSize(nType, cx, cy);
  if (::IsWindow(hwndScintilla)) ::MoveWindow(hwndScintilla,0, 0, cx, cy, TRUE);
}
Übrigens kannst du ganz einfach die Minimal- und Maximalgrösse des Dialoges vorgeben, wenn du auf WM_GETMINMAXINFO reagierst und im entsprechenden Handler die vorgegebenen Werte in der MINMAXINFO änderst.

2. Du verwendest die GuiLayoutLib. Das ist eine Bibliothek, um ganz einfach das Management von Kontrollelementen in veränderbaren Dialogen zu erledigen. Du bekommst sie hier .
 
Zurück