Italia
Wünsche und Anregungen

Wunsch: Globale Mausposition

 
Problem: Die globale Mausposition ist nicht einfach zu beziehen.

Eine zusätzliche Funktion getMousePos (vlt. get("MousePos",handle&)) fehlt, diese setzt auch die Systemvariablen %mouseX  und %mouseY .

Ist handle& Null, dann ist die Globale gemeint, andernfalls relativ vlt. wie:
KompilierenMarkierenSeparieren
proc MOUSE.GETPOS

    PARAMETERS H&

    SELECT %PCOUNT

        CASEOF 0

        ~GetCursorPos(MOUSE.MEM#)
        MOUSE.X&=MOUSE.MEM#.X&
        MOUSE.Y&=MOUSE.MEM#.Y&

        CASEOF 1

        DECLARE GMP#
        DIM GMP#,8
        CLEAR GMP#
        ~clientToScreen(H&,GMP#)
        var GMX%=LONG(GMP#,0)
        var GMY%=LONG(GMP#,4)
        ~getCursorPos(GMP#)
        GMX%=LONG(GMP#,0)-GMX%
        GMY%=LONG(GMP#,4)-GMY%
        MOUSE.X&=GMX%
        MOUSE.Y&=GMY%
        DISPOSE GMP#

    ENDSELECT

endproc


KompilierenMarkierenSeparieren
 
16.10.2009  
 




Dieter
Zornow
warum umständlich wenns auch einfach geht
KompilierenMarkierenSeparieren
XProfan 11
ohne Parameter ist screenposition
 $H Windows.ph

subproc Get.MOUSEPOS

    PARAMETERS Hwnd&
    Declare X%,Y%,point#
    Dim point#,8

    SELECT %PCOUNT

        CASEOF 0

        ~GetCursorPos(point#)
        X%=long(point#,0)
        Y%=long(point#,4)

        CASEOF 1

        ~getCursorPos(point#)
        ~screenToClient(Hwnd&,point#)
        X% = long(point#,0)
        Y% = long(point#,4)
        OTHERWISE
        Dispose point#
        Return "0|0"

    ENDSELECT

    Dispose point#
    return str$(X%)+"|"+str$(Y%)

endproc

cls

while 1

    waitinput 5
    case %Key = 2:break
    settext %Hwnd,Get("MOUSEPOS",%Hwnd)

endwhile

end
 
Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai., Win 7 32 bit und Win 7 64 bit, mit XProfan X2
17.10.2009  
 



Also %mousex und %mousey-setzend wäre doch aber schöner und vor allem schneller.
 
17.10.2009  
 




Nico
Madysa
Kann man sich die Koordinaten denn nicht mit ClientToScreen umrechnen lassen?
 
Nico Madysa
18.10.2009  
 




Dieter
Zornow
Du meinst wohl screentoClient nicht clienttoscreen. getcursorpos liefert ja schon die Screen-Koordinaten, die man mit ScreentoClient auf Fenster beziehen kann, wie ich es in meinem Code gemacht habe.
 
Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai., Win 7 32 bit und Win 7 64 bit, mit XProfan X2
18.10.2009  
 



Nico Madysa, Beitrag=54509, Zeitpunkt=18.10.2009
Kann man sich die Koordinaten denn nicht mit ClientToScreen umrechnen lassen?


Koordinaten kommen nicht an wenn Maus nicht überm HWND.
 
18.10.2009  
 




Dieter
Zornow
Probiere mal mein Beispiel, da kommen sie an
 
Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai., Win 7 32 bit und Win 7 64 bit, mit XProfan X2
18.10.2009  
 



@Dieter: Meine Antwort galt Nico der IMHO annahm, dass %mousex und %mousey einfach umrechenbar wäre, was deshalb wenig nutzt, da %mousex und %mousey nur gesetzt werden, wenn der Mauspfeil sich circa dem HWND è. ^^ Dein Beispiel ist doch ok, ist doch im Grunde selbe wie meins oben - ich meinte nur das es besser wäre wenn XProfan %mousex und y setzen potuto und getMousePos nativ wäre.
 
18.10.2009  
 




Dieter
Zornow
Achso, dann habe ich auch Nico falsch verstanden, naja rapide fortschreitende Alzheimer.

Aber grundsätzlich hat er recht, die Positionen im Hauptfenster potuto man auf Screen-Koordinaten umrechnen lassen.
Ist aber im Hauptfenster wahrscheinlich sinnfrei.
 
Er ist ein Mann wie ein Baum. Sie nennen ihn Bonsai., Win 7 32 bit und Win 7 64 bit, mit XProfan X2
19.10.2009  
 



Bei Omikron-Basic (Atari 1040ST) hiess es auch GetMousePos - fand ich immer schön.
 
19.10.2009  
 




Nico
Madysa
Ja, dass %MouseX und -Y etwas eingeschränkt sind, vergaß ich, jsuis inconsolable.

Dann wäre aber eine Set-Option, die die beiden Systemvariablen entsprechend ändert, doch wesentlich sinnvoller, oder?
 
Nico Madysa
24.10.2009  
 



Nico Madysa, Beitrag=54602, Zeitpunkt=24.10.2009
Ja, dass %MouseX und -Y etwas eingeschränkt sind, vergaß ich, jsuis inconsolable.

Dann wäre aber eine Set-Option, die die beiden Systemvariablen entsprechend ändert, doch wesentlich sinnvoller, oder?


get("MousePos",[Handle]) ist sinnvoll, ändert beide Sysvars.
 
24.10.2009  
 




Answer


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

6.198 Views

Untitledvor 0 min.
Sven Bader02.08.2021
Axel Berse01.05.2019
Walter07.04.2019
Vgdd05.06.2017
Di più...

Themeninformationen

Dieses Thema hat 3 subscriber:

iF (10x)
Nico Madysa (5x)
Dieter Zornow (4x)


Admins  |  AGB  |  Applications  |  Autori  |  Chat  |  Informativa sulla privacy  |  Download  |  Entrance  |  Aiuto  |  Merchantportal  |  Impronta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Giochi  |  Cerca  |  Support

Ein Projekt aller XProfaner, die es gibt!


Il mio XProfan
Private Notizie
Eigenes Ablageforum
Argomenti-Merkliste
Eigene Beiträge
Eigene Argomenti
Zwischenablage
Annullare
 Deutsch English Français Español Italia
Traduzioni

Informativa sulla privacy


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie