[B+] Fenster in die richtige Größe bringen.
Übersicht

![]() |
XenonBetreff: [B+] Fenster in die richtige Größe bringen. |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi, bestimmt habt ihr euch schon gewünscht, dass ihr das Fenster mit einer bestimmten ClientWidth und ClientHeight erstellen könnt. Das geht auch mit dem Style Parameter 32 bei CreateWindow. Allerdings gelten dann die X und Y Koordinaten ebenfalls für die Clientarea und nicht für die gesammte Windowarea, sprich wenn ihr das Fenster bei y = 0 erstellt ist die Titelleiste nicht sichtbar, da sie "über" dem Desktop ist.
Da schaffen meine Funktionen abhilfe, einfach mit CreateWindow und gewünschter X und Y Koordinate das Fenster erstellen (ohne dem style 32) und dann die Funktion AdjustWindowSize aufrufen. Wenn euer Fenster ein Menü hat und dieses nicht in der Clientheight/width enthalten sein soll müsst ihr beim Menü Parameter True angeben. Für die, die das Fenster auch gleich zentriert am Desktop haben wollen habe ich die Funktion AdjustWindowSizeMiddle geschrieben, welche das Fenster auch gleich richtig ausrichtet (Hier ist dann die X und Y koordinate beim erstellen des Fensters auch egal). Man könnte sich diese Funktion zwar selbst schreiben, allerdings gibt ClientHeight(Desktop()) und ClientWidth(Desktop()) nicht die richtigen Werte (die ohne Taskleiste) sondern die normale Auflösung zurück. Ebenso könnt ihr dabei nicht beachten ob euer User des Programms die Titelleiste zB am obereren Rand hat. Meine Funktion beachtet das! Als 3. Funktion hab ich noch eine, die die Fenstergröße genauso groß macht wie am Desktop der Arbeitsbereich groß ist (wieder ohne Taskleiste). Viel Spaß, Xenon Hier die user32.decls Funktionen: BlitzBasic: [AUSKLAPPEN] GetWindowLong%(hWnd%,wIndx%):"GetWindowLongA" Hier der Code mit Konstanten: BlitzBasic: [AUSKLAPPEN] Const SPI_GETWORKAREA = 48 Und hier ein BeispielCode: BlitzBasic: [AUSKLAPPEN] window = CreateWindow("Titel", 0, 0, 200, 200, 0, 3) |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group