Zitat von
Shaman:
Hey, gute Arbeit
Ich arbeite auch schon einige Zeit an einem Hexeditor, kenne mich also ein bisschen aus
Da freue ich mich besonders über das Lob
Zitat von
Shaman:
Ein kleines Detail würde mich noch interessieren: Hast Du etwas Spezielles gemacht, um das Flackern beim Anzeigen eines maximierten Childs zu verhindern?
Ich denke du meinst damit wenn man ein MDIChild zum ersten Mal anzeigt oder zwischen denen hinundherwechselt?
Wenn ja, dann so:
Hauptidee ist es SendMessage(MainForm.ClientHandle, WM_SETREDRAW, 0, 0) zu verwenden um das Zeichnen zu unterbinden. Das Problem ist dies an den passenden Momenten zu setzen und wieder aufzuheben.
Da muß man einiges ausprobieren, leider gibt es da auch keine allgemeingültige Lösung.
Z.B. Will man daß beim Programmstart direkt eine Datei in einem MDIChild geladen wird ohne zu Flackern muß man WindowState auf wsMaxmized setzen und dies vor Application.Run tun sonst wird das MDIChild erst nach der MainForm erzeugt, was man sieht. SendMessage(MainForm.ClientHandle, WM_SETREDRAW, 0, 0) sollte dann auch nicht aufgerufen werden da sonst nicht richtig gezeichnet wird.
Allerdings sollte man wenn das Programm schon geladen ist WindowState in Ruhe lassen und
WinAPI verwenden um das zu erreichen, sonst wird das Fenster erst wiederhergestellt und dann maximiert, was besonders unschön ist.
Aber wenn man damit ein bisschen rumexperimentiert klappt's