Entwickler-Ecke

Windows API - Desktop begrenzen


Ruditschka - Do 12.06.03 22:05
Titel: Desktop begrenzen
Moin!

Wie kann ich den Bereich eingrenzen, der maximierten Fenstern zur Verfügung steht (also meist der gesamte Bildschirm minus Taskbar)?

Einige Programme wie z.B. Trillian können das ebenfalls. Sie setzen sich ganz an den Rand und maximierte Programmfenster gehen dann nur noch bis an das Programmfenster der Anwendung und nicht mehr bis an den Bildschirmrand.

Gruß
Christoph


Motzi - Fr 13.06.03 07:54

Such mal hier im Forum nach SHAppBarMessage...


Popov - Sa 14.06.03 15:38

Ich würde dich bitten die Frage ein wenig präziser zu stellen. Es gibt da mehrere Möglichkeiten:

- Die eine (einfach und nur eine Funktion) begrenzt das fenster, past aber den Desktop nicht an, d.h. der Bereich für die Fenster wird kleiner, aber die Icons bleiben an der alten Stelle.

- Die andere (siehe antwort Mozi) ist etwas besser, aber auch komplizierter. Die Lösung ist etwas professioneller. Neben dem Bereich wird auch der Desktop verkleinert und die Icon passen sich an, d.h. sie verschieben sich nach links, rechs oder wie es eben sein soll.

Auch wenn du die Unit für die zweite Lösung findest, so ist eine Einarbeitungsphase nötig, da es doch nicht so einfach ist.


Unzi - Mo 16.06.03 15:57

Wenns dir nur darum geht, dein Fenster einfach größer zu machenals die Richtlinien, machs doch so:


Quelltext
1:
2:
3:
4:
5:
procedure Form1.FormActivate(Sender : TObject);
begin
width:=GetSystemMetrics(SM_CXSCREEN);
height:=GetSystemMetrics(SM_CYSCREEN);
end;


Ruditschka - Sa 21.06.03 13:53

Ich habe das Problem jetzt mit Hilfe einer Komponente gelöst, die meine Form als AppBar einträgt.

Das Problem war, eine Bildschirmtastatur so darzustellen, dass sie einerseits nicht überdeckt werden kann, auf der anderen Seite aber selbst auch kein Programm überdeckt.