BlitzUI - DrawMouse()
Übersicht

martin_moehlerBetreff: BlitzUI - DrawMouse() |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo,
ich bastle wieder an meinem Mapeditor weiter und brauche Hilfe bei einem BlitzUI Problem. Ich benutze für das Programm die integierte Mouse-Anzeige über den Befehl DrawMouse(). Wenn die Maus das Fenster meines Programmes verlässt wird diese dann allerdings weiter im Programm gezeigt, sodass ich zwei Maus-Symbole habe. Eine in meinem Programm und eine von Windows. Ich habe versucht eine Abfrage zu machen: Code: [AUSKLAPPEN] If MouseX() > 1 Then DrawMouse() ... und habe gehofft, dass Sobal die Maus das Fenster verlässt, die Maus aus dem Programm nicht mehr gezeichnet wird. Bei schnellen Mausbewegungen überspringt der MouseX()-Wert allerdings bis zu 120 Pixel, sodass die Abfrage weiterhin erfüllt bleibt. Ich hoffe, es hat jemand eine Idee wie ich diese Problem lösen klann! MFG Martin |
||
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich habe leider keinen Eintrag mehr hier im Forum finden können. Daher poste ich mal eine Version die ich verwende:
Code: [AUSKLAPPEN] ;.lib "user32.dll"
; ;api_GetCursorPos% (lpPoint*) : "GetCursorPos" ;api_GetWindowRect% (hwnd%, lpRect*) : "GetWindowRect" Graphics 400,400,0,2 SetBuffer BackBuffer() Local Timer=CreateTimer(60) While Not KeyHit(1) Rect 100,100,200,200,MOW() WaitTimer Timer Flip 0 Cls Wend End Function MOW() Local AppHWND%=SystemProperty("APPHWND") Local MOWMain%=CreateBank(08) Local MOWRect%=CreateBank(16) api_GetCursorPos MOWMain api_GetWindowRect AppHWND,MOWRect Local MOWMX%=PeekInt(MOWMain,00) Local MOWMY%=PeekInt(MOWMain,04) Local MOWX1%=PeekInt(MOWRect,00) Local MOWY1%=PeekInt(MOWRect,04) Local MOWX2%=PeekInt(MOWRect,08)-MOWX1 Local MOWY2%=PeekInt(MOWRect,12)-MOWY1 FreeBank MOWMain FreeBank MOWRect Return RectsOverlap(MOWMX,MOWMY,1,1,MOWX1,MOWY1,MOWX2,MOWY2) End Function Die auskommentierten Zeilen musst du allerdings ohne den ; zu beginn in eine Textdatei speichern und es als irgendwas.decls in dein Userlibs-Ordner speichern. Diesen Ordner findest du da, wo auch dein Blitz3D installiert ist --> ..\Blitz3D\Userlibs\.. |
||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
martin_moehler |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Danke für die schnelle Antwort! ![]() Funktioniert problemlos! Nur Ich hab immernioch die doppelte Maus, wenn die Maus sich nun auf dem Windows-Teil des Fensters befindet also Überschrift und Seitenumrandung! Ich probiers aber auch selbst noch weiter! Danke nochmal |
||
![]() |
hecticSieger des IS Talentwettbewerb 2006 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also die Funktion MOW() liefert eine 0 oder eine 1 zurück. Eine 1, wenn sich die Maus über dein Programm befindet. Was du nun mit dieser Abfrage machst, ist deine Sache. Empfehlenswert wäre dann eben: If MOW() Then dEiNzEuG | ||
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D |
martin_moehler |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ja, ja schon klar und das funktioniert ja auch! Ich guck einfach selber noch wie ichs mache!
Danke LG MArtin |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group