Windowgrösse

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
unix
Beiträge: 361
Registriert: 15.02.2005 19:25
Wohnort: Zwischen Coburg und Bamberg :-)
Kontaktdaten:

Windowgrösse

Beitrag von unix »

Mal wieder ne Frage,
wie kann man die grösse eines Fensters nur anhand des Handels ermitteln
Hier steht normalerweise die Putzfrau drin,
die hat aber Urlaub.
MfG : Unix
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Beitrag von edel »

GetWindowRect
Benutzeravatar
unix
Beiträge: 361
Registriert: 15.02.2005 19:25
Wohnort: Zwischen Coburg und Bamberg :-)
Kontaktdaten:

Beitrag von unix »

GetWindowRect(HWND hwnd, LPRECT lpRect);

und was ist "LPRECT lpRect"?
Hier steht normalerweise die Putzfrau drin,
die hat aber Urlaub.
MfG : Unix
Benutzeravatar
milan1612
Beiträge: 810
Registriert: 15.04.2007 17:58

Beitrag 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.
Bin nur noch sehr selten hier, bitte nur noch per PN kontaktieren
Benutzeravatar
unix
Beiträge: 361
Registriert: 15.02.2005 19:25
Wohnort: Zwischen Coburg und Bamberg :-)
Kontaktdaten:

Beitrag 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
Hier steht normalerweise die Putzfrau drin,
die hat aber Urlaub.
MfG : Unix
Benutzeravatar
hjbremer
Beiträge: 822
Registriert: 27.02.2006 22:30
Computerausstattung: von gestern
Wohnort: Neumünster

Beitrag 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       
Purebasic 5.70 x86 5.72 X 64 - Windows 10

Der Computer hat dem menschlichen Gehirn gegenüber nur einen Vorteil: Er wird benutzt
grüße hjbremer
Benutzeravatar
unix
Beiträge: 361
Registriert: 15.02.2005 19:25
Wohnort: Zwischen Coburg und Bamberg :-)
Kontaktdaten:

Beitrag von unix »

merci!! sowas wollte ich!!

[EDIT]
hasse WinAPI weil ich es nicht verstehe ^^
Hier steht normalerweise die Putzfrau drin,
die hat aber Urlaub.
MfG : Unix
Benutzeravatar
hjbremer
Beiträge: 822
Registriert: 27.02.2006 22:30
Computerausstattung: von gestern
Wohnort: Neumünster

Beitrag 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:
Purebasic 5.70 x86 5.72 X 64 - Windows 10

Der Computer hat dem menschlichen Gehirn gegenüber nur einen Vorteil: Er wird benutzt
grüße hjbremer
Benutzeravatar
unix
Beiträge: 361
Registriert: 15.02.2005 19:25
Wohnort: Zwischen Coburg und Bamberg :-)
Kontaktdaten:

Beitrag 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.
Hier steht normalerweise die Putzfrau drin,
die hat aber Urlaub.
MfG : Unix
Benutzeravatar
hjbremer
Beiträge: 822
Registriert: 27.02.2006 22:30
Computerausstattung: von gestern
Wohnort: Neumünster

Beitrag von hjbremer »

http://msdn2.microsoft.com/en-us/library/ms633519.aspx

hilft immer :mrgreen: :mrgreen: :mrgreen:

wer suchet, der werde finden :D
Purebasic 5.70 x86 5.72 X 64 - Windows 10

Der Computer hat dem menschlichen Gehirn gegenüber nur einen Vorteil: Er wird benutzt
grüße hjbremer
Antworten