Tag Niko,
ich habe mich in letzter Zeit mit einem ganz ähnlichem Problem beschäftigt.
Mir ging es nicht darum, dem Fenster die Leiste oben zu klauen, eher wohl das
Fenster zu sperren. Du wolltest den Parameter
WS_CAPTION raushauen und
ich wollte
WS_DISABLED reinbasteln. Zwei Ideen mit ein und demselben Lösungsweg.
Ich hatte auch genau die gleichen Darstellungsfehler auf meiner Form und
merkte das dein Problem auch bei mir auftauchte. Ich hatte darauf beschlossen
Google.de aufzusuchen und dort brauchbares zu finden. Und tadaa:
Des Fehlers Lösung war einfach eine falsche
Verwendung der Delphi-Schlüsselwörter.
Grund für die Darstellungsfehler:
Der Styles-Eigenschaft eines Fenster wird Ramsch übergeben, nach dem
Ausführen dieses Ramsch-Styles wird das Fenster falsch dargestellt.
Lösung für die Übergabe:
Es wird ein anderes Schlüsselwort benötigt, um aus Ramsch eine klare,
brauchbare Anweisung zu machen, die Windows für seine Fenster braucht.
Lösungsbeispiel:
Delphi-Quellcode:
[...]
var
Fenster_stil : Cardinal;
[...]
// Speichern des Standardstils für Wiederherstellung des Fensters.
Fenster_stil := GetWindowLong ( FormMain.hWnd, GWL_STYLE );
// Dem Fenster wird eine neue Eigenschaft hinzugefügt.
SetWindowLong ( FormMain.hWnd, GWL_STYLE, Fenster_stil or WS_DISABLED );
// Das Fenster wird auf den alten Fenstertil zurückgesetzt.
SetWindowLong ( FormMain.hWnd, GWL_STYLE, Fenster_stil );
[...]
So, Meister, ich hoffe das hat dein Problem gedanklich gelöst.
Dieser Thread ist mal wieder ein glänzendes Beispiel für die
Ausarbeitung und Vollendung einer Idee durch verschiedenen User.
Geniales Forum. :)
Cii jaa©$me
graphicar