ImagePos stimmt nich mein fehler oder bug in PB?

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
nicolaus
Moderator
Beiträge: 1175
Registriert: 11.09.2004 13:09
Kontaktdaten:

ImagePos stimmt nich mein fehler oder bug in PB?

Beitrag von nicolaus »

Erst mal allen ein gesundes neues jahr 2005.

So und nun mal ne frage zu dem nachstehenden code. Ist das mein fehler (was ich nich glaube) oder ein BUG in PB?
Ich erstelle ein Imagegadget und rufe dann wie im code zu sehen ist die Position des gadgets ab (per API) doch ist die in der höhe um 22 pixel falsch.

Hier mal der Code:

Code: Alles auswählen

img = CreateImage(0,40,40)
OpenWindow(0,0,0,200,200,#PB_Window_SystemMenu,"test")

UseImage(0)
StartDrawing(ImageOutput())
Box(0,0,40,40,RGB($B,$C9,$1))
StopDrawing()

CreateGadgetList(WindowID())
pyhwnd=ImageGadget(0,100,100,40,40,UseImage(0))
TextGadget(1,10,10,150,15,"ImagePosTop = ")
TextGadget(2,10,35,150,15,"MousePosY = ")

GetWindowRect_(pyhwnd,rect.RECT)
SetGadgetText(1,"ImagePosTop = " + Str(rect\Top))

Repeat
  Event = WaitWindowEvent()
  SetGadgetText(2,"MousePosY = " + Str(WindowMouseY()))

Until Event = #PB_Event_CloseWindow
das gibt mir gerade ein wenig zu denken und is mir bei meinem akutellen project aufgefallen.

Gruss Nico

[Edit]
Wird noch schlimmer wenn ich auch noch ein menu mit einbaue.
hier mal der code mit menu:

Code: Alles auswählen

img = CreateImage(0,40,40)
OpenWindow(0,0,0,200,200,#PB_Window_SystemMenu,"test")
CreateMenu(0,WindowID())
MenuTitle("test")

UseImage(0)
StartDrawing(ImageOutput())
Box(0,0,40,40,RGB($B,$C9,$1))
StopDrawing()

CreateGadgetList(WindowID())
pyhwnd=ImageGadget(0,100,100,40,40,UseImage(0))
TextGadget(1,10,10,150,15,"ImagePosTop = ")
TextGadget(2,10,35,150,15,"MousePosY = ")

GetWindowRect_(pyhwnd,rect.RECT)
SetGadgetText(1,"ImagePosTop = " + Str(rect\Top))

Repeat
  Event = WaitWindowEvent()
  SetGadgetText(2,"MousePosY = " + Str(WindowMouseY()))

Until Event = #PB_Event_CloseWindow
[/edit]
Benutzeravatar
nicolaus
Moderator
Beiträge: 1175
Registriert: 11.09.2004 13:09
Kontaktdaten:

Beitrag von nicolaus »

es scheit an der funktion GetWindowRect aus der API zu liegen. Bei der funktion wir vom absoluten 0-punkt ausgegangen das heist die titelbar wird mit eingerechnet denke ich mal.
Antworten