Seite 1 von 2

Windowgrösse

Verfasst: 20.04.2008 13:16
von unix
Mal wieder ne Frage,
wie kann man die grösse eines Fensters nur anhand des Handels ermitteln

Verfasst: 20.04.2008 13:20
von edel
GetWindowRect

Verfasst: 20.04.2008 13:33
von unix
GetWindowRect(HWND hwnd, LPRECT lpRect);

und was ist "LPRECT lpRect"?

Verfasst: 20.04.2008 13:43
von milan1612
unix hat geschrieben:GetWindowRect(HWND hwnd, LPRECT lpRect);

und was ist "LPRECT lpRect"?
Das ist die Addresse zu einer RECT Variable:

Code: Alles auswählen

Define var.RECT
GetWindowRect_(hWnd.l, @var)
Danach stehen die Werte in var.

Verfasst: 20.04.2008 14:01
von unix
milan1612 hat geschrieben:
unix hat geschrieben:GetWindowRect(HWND hwnd, LPRECT lpRect);

und was ist "LPRECT lpRect"?
Das ist die Addresse zu einer RECT Variable:

Code: Alles auswählen

Define var.RECT
GetWindowRect_(hWnd.l, @var)
Danach stehen die Werte in var.
Bei mir in der Debugausgabe von var="1245020" das bei jeden Fenster ist das ein Pointer auf nen Speicher?? aber wenn ich peekl(var) mache bekomme ich 0

Verfasst: 20.04.2008 14:04
von hjbremer
zum besseren Verständnis:

Code: Alles auswählen

flag = #PB_Window_SystemMenu|1
hwnd = OpenWindow(0,0,0,400,200,"Test",flag) 
       CreateGadgetList(hwnd) 

       id = ButtonGadget(1,10,20,80,25,"Tue nix")
       
       ;für das Window ab Screen oben links
       GetWindowRect_(hwnd,r.rect)
       
       Debug r\top
       Debug r\left
       Debug r\right
       Debug r\bottom
       Debug "---"
       
       ;Größe des Windows
       GetClientRect_(hwnd,r.rect)
       
       Debug r\top
       Debug r\left
       Debug r\right
       Debug r\bottom
       Debug "---"
       
       ;für den Button ab Screen oben links
       GetWindowRect_(id,r.rect)
       
       Debug r\top
       Debug r\left
       Debug r\right
       Debug r\bottom
       Debug "---"
       
       ;Größe des Gadgets
       GetClientRect_(id,r.rect)
       
       Debug r\top
       Debug r\left
       Debug r\right
       Debug r\bottom
       Debug "---"
       
Repeat: event = WaitWindowEvent()   
Until event = #PB_Event_CloseWindow 

End       

Verfasst: 20.04.2008 14:07
von unix
merci!! sowas wollte ich!!

[EDIT]
hasse WinAPI weil ich es nicht verstehe ^^

Verfasst: 20.04.2008 14:19
von hjbremer
ja ja, die MSDN ist dein Freund, :D

du findest nix und verstehst nix, :mrgreen: :mrgreen: :mrgreen:

geht mir auch meistens, ab und zu, immer, manchmal so :shock:

Verfasst: 20.04.2008 14:20
von unix
hjbremer hat geschrieben:ja ja, die MSDN ist dein Freund, :D

du findest nix und verstehst nix, :mrgreen: :mrgreen: :mrgreen:

geht mir auch meistens, ab und zu, immer, manchmal so :shock:
MSDN?? ich hab nen API Guide aber da vernünftig was rauszulesen naja

[EDIT]

Das verstehe ich auch nicht:

Code: Alles auswählen

Declare Function SetWindowPlacement Lib "user32" (ByVal hwnd As Long, lpwndpl As WINDOWPLACEMENT) As Long

· hWnd
[in] Handle to the window.

· lpwndpl
[in] Pointer to a WINDOWPLACEMENT structure that specifies the new show state and window positions.
Before calling SetWindowPlacement, set the length member of the WINDOWPLACEMENT structure to sizeof(WINDOWPLACEMENT). SetWindowPlacement fails if lpwndpl->length is not set correctly.

Verfasst: 20.04.2008 14:24
von hjbremer
http://msdn2.microsoft.com/en-us/library/ms633519.aspx

hilft immer :mrgreen: :mrgreen: :mrgreen:

wer suchet, der werde finden :D