| |
|
|
ToM | hi!
ich hätt mal wieder ne frage ...
Die Mausposition innerhalb des eigenen Fenster herausfinden ist leicht, nur wie kann ich das machen, wenn ich nichtmal ein eigenes Fenster hab, dass ich die aktuelle Mausposition herausfinde ?!
hoffe mir kannwer helfen
mfg ToM |
|
|
| AMD Athlon 64 4500+ / 1500 MB Ram / Windows Server 2003 Enterprise / Profan 7.0 | 21.09.2005 ▲ |
|
|
|
|
| So? KompilierenMarkierenSeparierenDEF @GetCursorPos(1) !"USER32","GetCursorPos"
Def @ScreenToClient(2) !"USER32","ScreenToClient"
Windowstyle 31
Windowtitle "Globale Mauskoordinaten in Fensterposition umrechnen"
Window 50,75-600,350
Declare pos#
While 0=0
Sleep 10
DIM POS#,8
GetCursorPos(pos#)
Drawtext 0,0,"Global X="+@STR$(@Long(Pos#,0))+@Space$(100)
Drawtext 0,20,"Global Y="+@STR$(@Long(Pos#,4))+@Space$(100)
@ScreenToClient(%HWND,Pos#)
Drawtext 0,40,"Lokal X="+@STR$(@Long(Pos#,0))+@Space$(100)
Drawtext 0,60,"Lokal Y="+@STR$(@Long(Pos#,4))+@Space$(100)
Dispose Pos#
Wend
|
|
|
| |
|
|
|
ToM | danke
genau das meinte ich |
|
|
| AMD Athlon 64 4500+ / 1500 MB Ram / Windows Server 2003 Enterprise / Profan 7.0 | 21.09.2005 ▲ |
|
|
|
|
ToM | hmm hätte noch ein problem
gibts es eine umgekehrte funktion von SetWindowPos
also dass Man die Position eines anderen Fensters und die Dimensione eines anderen Fensters herausfindet hm ?!
mfg tom |
|
|
| AMD Athlon 64 4500+ / 1500 MB Ram / Windows Server 2003 Enterprise / Profan 7.0 | 21.09.2005 ▲ |
|
|
|
|
| So? KompilierenMarkierenSeparierenDef @GetWindowRect(2) !"USER32", "GetWindowRect"
Def @ScreenToClient(2) !"USER32","ScreenToClient"
WindowTitle "Koordinaten"
Windowstyle 31+512
Window 0,0-640,440
Decimals 0
Declare b#,dlg&
LET dlg&=@Create("Window",%hwnd,"Testdialog",150,150,300,300)
Whilenot %MENUITEM=-2
GetMessage
Locate 1,1
Dim b#,16
@GetWindowRect(dlg&,b#)
print "Eckpunkte von Testdialog bezogen auf Bildschirm:",Long(b#,0),Long(b#,4),Long(b#,8),Long(b#,12);" "
@ScreenToClient(%hwnd,b#)
@ScreenToClient(%hwnd,b#+8)
print "Eckpunkte von Testdialog bezogen auf %hwnd:",Long(b#,0),Long(b#,4),Long(b#,8),Long(b#,12);" "
@GetWindowRect(dlg&,b#)
@ScreenToClient(dlg&,b#)
@ScreenToClient(dlg&,b# + 8)
Print ""
PRINT "Breite des Rahmens von Testdialog: "+@STR$(@ABS(Long(b#,0))/2)+" "
PRINT "Höhe der Titelzeile von Testdialog ohne Rahmen: "+@STR$(@ABS(Long(b#,4))-@ABS(Long(b#,0)))+" "
PRINT "Breite des Clientbereiches von Testdialog: "+@STR$(Long(b#,8))+" "
PRINT "Höhe des Clientbereiches von Testdialog: "+@STR$(Long(b#,12))+" "
Dispose b#
Wend
|
|
|
| |
|
|
|
ToM | hmmm meinte das so z.B.:
Fenster: Windows Media Player Höhe 300 / Breite 400 PosX 200 / PosY 200
Also dass man diese Sachen herausfindet.
mfg tom |
|
|
| AMD Athlon 64 4500+ / 1500 MB Ram / Windows Server 2003 Enterprise / Profan 7.0 | 21.09.2005 ▲ |
|
|
|
|
| |
|
| |
|
|
|
ToM | ok habn bissl falsche gedacht, sorry
und thx fürn code und sorry dass ich eurer forum so fülle *g*
mfg tom |
|
|
| AMD Athlon 64 4500+ / 1500 MB Ram / Windows Server 2003 Enterprise / Profan 7.0 | 21.09.2005 ▲ |
|
|
|
|
| Macht nichts, ist ja viel Platz hier . |
|
|
| |
|
|
|
ToM | hmmm bei den oberen quellcode werden ab und zu 1000er Stellen hunugefügt, also statt z.B. 512 .. 512000
wieso hm ?!
mfg tom |
|
|
| AMD Athlon 64 4500+ / 1500 MB Ram / Windows Server 2003 Enterprise / Profan 7.0 | 21.09.2005 ▲ |
|
|
|
|
| So auch noch??? KompilierenMarkierenSeparierenDef @GetWindowRect(2) !"USER32", "GetWindowRect"
Def @ScreenToClient(2) !"USER32","ScreenToClient"
WindowTitle "Koordinaten"
Windowstyle 31+512
Window 0,0-640,440
Decimals 0
Declare b#,dlg&
LET dlg&=@Create("Window",%hwnd,"Testdialog",150,150,300,300)
Whilenot %MENUITEM=-2
GetMessage
Locate 1,1
Dim b#,16
@GetWindowRect(dlg&,b#)
print "Eckpunkte von Testdialog bezogen auf Bildschirm:"+@STR$(Long(b#,0))+" "+@Str$(Long(b#,4))+" "+@Str$(Long(b#,8))+" "+@str$(Long(b#,12))+" "
@ScreenToClient(%hwnd,b#)
@ScreenToClient(%hwnd,b#+8)
print "Eckpunkte von Testdialog bezogen auf %hwnd:"+@str$(Long(b#,0))+" "+@Str$(Long(b#,4))+" "+@Str$(Long(b#,8))+" "+@Str$(Long(b#,12))+" "
@GetWindowRect(dlg&,b#)
@ScreenToClient(dlg&,b#)
@ScreenToClient(dlg&,b# + 8)
Print ""
PRINT "Breite des Rahmens von Testdialog: "+@STR$(@ABS(Long(b#,0))/2)+" "
PRINT "Höhe der Titelzeile von Testdialog ohne Rahmen: "+@STR$(@ABS(Long(b#,4))-@ABS(Long(b#,0)))+" "
PRINT "Breite des Clientbereiches von Testdialog: "+@STR$(Long(b#,8))+" "
PRINT "Höhe des Clientbereiches von Testdialog: "+@STR$(Long(b#,12))+" "
Dispose b#
Wend
|
|
|
| |
|
|
|
| So auch noch? Welche Profanversion??? KompilierenMarkierenSeparierenDEF @GetCursorPos(1) !"USER32","GetCursorPos"
Def @ScreenToClient(2) !"USER32","ScreenToClient"
Windowstyle 31
Windowtitle "Globale Mauskoordinaten in Fensterposition umrechnen"
Window 50,75-600,350
Declare pos#
While 0=0
Sleep 10
DIM POS#,8
GetCursorPos(pos#)
Drawtext 0,0,"Global X="+@STR$(@Long(Pos#,0))+" "
Drawtext 0,20,"Global Y="+@STR$(@Long(Pos#,4))+" "
@ScreenToClient(%HWND,Pos#)
Drawtext 0,40,"Lokal X="+@STR$(@Long(Pos#,0))+" "
Drawtext 0,60,"Lokal Y="+@STR$(@Long(Pos#,4))+" "
Dispose Pos#
Wend
|
|
|
| |
|
|