Einzelnen Beitrag anzeigen

ferby

Registriert seit: 15. Aug 2004
Ort: Wien
841 Beiträge
 
Delphi 2010 Enterprise
 
#5

Re: [MASM] GetClientRect funktioniert nicht richtig

  Alt 14. Feb 2009, 13:59
Hallo,

sry, ich hatte die MapWindowPoints funktion nicht ganz kapiert wie ich die genau einsetze.
Jetzt funktioniert alles so wie ich will und der quellcode ist sogar kurz geblieben.

Vielen Dank

Code:
; Hohle die Controll Points in CoordRect relativ zum linken oberen Fenster Punkt
; h_control = Handle vom Controll
; h_window = Handle vom Window
; CoordRect und CoordRect2 = RECT
GET_CONTROL_POINTS macro h_control
   push eax
   push ebx

   ; für top und left
   invoke GetWindowRect, h_control, ADDR(CoordRect)
   
   ; zu relativen coordinaten mappen
   invoke MapWindowPoints, 0, h_window, ADDR(CoordRect), 2 
   
   ; für right (width) und bottom (heigh)
   invoke GetClientRect, h_control, ADDR(CoordRect2)

   mov eax, CoordRect2.right
   mov CoordRect.right, eax

   mov eax, CoordRect2.bottom
   mov CoordRect.bottom, eax

   pop ebx
   pop eax
endm
  Mit Zitat antworten Zitat