Français
C ++ Forum

&wParam contient pas den richtigen Wert

 

Georg
Hovenbitzer
allô zusammen,

beim nachfolgenden Code habe je cela Problem, dass pour qui Übersetzung dans qui Variable &wParam pas qui richtig Wert enthalten ist. Es sollte qui gleiche Wert son comment Button&, ist mais chez mir toujours 2.
Alle anderen Werte stimmen !
KompilierenMarqueSéparation
Def HiWord(1) (@&(1)  $10000)
Declare Button&
WindowStyle 512 + 16 + 8 + 2
WindowTitle "Test"
Window 100,100-400,300
UserMessages $0021,$0111,$0010
~WM_MOUSEACTIVATE,~WM_COMMAND,~WM_CLOSE
Button& = @Create("Button",%hWnd,"rechts Klick?",100,100,200,100)

WhileNot %UMessage = $0010

    WaitInput

    If %UMessage =$0021		~WM_MOUSEACTIVATE

        Print &wParam
        Print Button&
        Print HiWord(&ULParam)

        If (&wParam = Button&) And (HiWord(&ULParam) = $0204)	~WM_RBUTTONDOWN

            Print "Treffer"

        EndIf

    EndIf

EndWhile

Fin
 
Viele Grüsse, Georg Hovenbitzer(Windows XP Pro, XProfan 11.2, Profan2Cpp 1.6a)
12.11.2005  
 




Sebastian
König
allô Georg,

malheureusement scheint cela une qui Situationen trop son, dans denen sich qui unvermeidlichen kleinen Unterschiede im Message-Handling bemerkbar faire

si je cela (avec Spy++) richtig ermittelt habe, stammt qui Wert, qui dans &WParam steht, pas de WM_MOUSEACTIVATE , mais de einer vorangegangenen WM_SETCURSOR -nouvelle. c'est alors plus ou bien moins Zufall, dass cela so passt et peut sich wohl pas avec Sicherheit reproduzieren...

si es seulement tout autor allez, den Rechtklick sur den Button abzufragen, devrait es besser marcher, WM_PARENTNOTIFY  comme UserMessage trop prendre.

MfG

Sebastian
 
Windows XP, XProfan/Profan² 4.5 bis 11
Profan2Cpp-Homepage:  [...] 
Alte Profan²-Seite:  [...] 
13.11.2005  
 




Georg
Hovenbitzer
allô Sebastian,

merci pour den Tip avec WM_PARENTNOTIFY.
seulement comment bekomme je eh bien à qui Adresse de Button& sans &wParam abzufragen ?
la hâte du là une Tip pour mich ?
KompilierenMarqueSéparation
Def HiWord(1) (@&(1)  $10000)
Def LoWord(1) @&(1) & $FFFF
Declare Button&
WindowStyle 512 + 16 + 8 + 2
WindowTitle "Test"
Window 100,100-400,300
UserMessages $0111,$0010,$0210
~WM_MOUSEACTIVATE $0021
~WM_COMMAND $0111
~WM_CLOSE $0010
Wm_parentnotify $0210
Button& = @Create("Button",%hWnd,"rechts Klick?",100,100,200,100)

WhileNot %UMessage = $0010

    WaitInput

    If %UMessage =$0210 Wm_parentnotify

        Print LoWord(&UwParam)," = ","516" ~WM_RBUTTONDOWN
        Print "?"," = ",Button&

        If (&wParam = Button&) And (LoWord(&UwParam) = 516)	~WM_RBUTTONDOWN

            Print "Treffer"

        EndIf

    EndIf

EndWhile

Fin
 
Viele Grüsse, Georg Hovenbitzer(Windows XP Pro, XProfan 11.2, Profan2Cpp 1.6a)
13.11.2005  
 




Georg
Hovenbitzer
allô Sebastian,

j'ai un Solution trouvé qui dans qui Übersetzten Version très bien funktioniert.

je lese avec GetCursorPos() qui Mausposition aus et WindowFromPoint() welches Contrôle sich au-dessous est.
KompilierenMarqueSéparation
Def GetCursorPos(1) !"USER32","GetCursorPos"
Def WindowFromPoint(2) !"USER32","WindowFromPoint"
Def Hiword(1) (@&(1)  $10000)
Declare FSpeicher&
Declare TFSpeicher&
Declare MausPos#
Dim MausPos#,8
WindowStyle 512 + 16 + 8 + 2
Windowtitle "Test"
Window 0,0-800,600
Usermessages $0021,$0111,$0010
~WM_MOUSEACTIVATE,~WM_COMMAND,~WM_CLOSE
FSpeicher& = @Control("COMBOBOX","",$54310003,330,32,100,90,%hWnd,90,%hInstance)
TFSpeicher& = @Create("Tooltip",%hWnd,FSpeicher&,"siehe rechte Maustaste")

WhileNot %Umessage = $0010

    WaitInput

    If (%Umessage =$0021) And (Hiword(&Ulparam) = $0204)~WM_MOUSEACTIVATE

        Clear MausPos#
        GetCursorPos(MausPos#)

        If (WindowFromPoint(@Long(MausPos#,0),@Long(MausPos#,4)) = FSpeicher&)~WM_RBUTTONDOWN

            Print "Treffer"

        EndIf

    EndIf

EndWhile

Dispose MausPos#
Fin
 
Viele Grüsse, Georg Hovenbitzer(Windows XP Pro, XProfan 11.2, Profan2Cpp 1.6a)
14.11.2005  
 




Sebastian
König
allô Georg,

étais quelque chose plus rapide comme je Zur Vollständigkeit ici encore un alternativer (mais entier ähnlicher) Vorschlag:

chez WM_PARENTNOTIFY wird (jedenfalls chez Mausereignissen) aussi qui aktuelle Mausposition dans &ULParam (HiWord/LoWord) transfert. ici serait es alors aussi so marcher:
KompilierenMarqueSéparation
...
Long Mouspos#,0 = LoWord(&ULParam)
Long Mouspos#,4 = HiWord(&ULParam)

If (ChildWindowFromPoint(%hwnd,Mouspos#) =

 

attention: ChildWindowFromPoint(), là qui Koordinaten relativ sommes.

MfG

Sebastian

P.S.: dans Deinem Code ist qui Aufruf Windowfrompoint(@Long(Mauspos#,0),@Long(Mauspos#,4)) pas entier richtig... es sollte simple WindowFromPoint(Mouspos#) son
 
Windows XP, XProfan/Profan² 4.5 bis 11
Profan2Cpp-Homepage:  [...] 
Alte Profan²-Seite:  [...] 
14.11.2005  
 




Georg
Hovenbitzer
allô Sebastian,

vielen Dank pour den Tip.
chez WindowFromPoint muss je dir wiedersprechen.
le son Win32.hlp et MSDN la hâte du zwar droite, mais es führt chez mir toujours trop bösen Abstürzen.
si on ici dans qui API banque de données schaut et im Internet, findet on toujours mon Solution avec deux Parametern.
 
Viele Grüsse, Georg Hovenbitzer(Windows XP Pro, XProfan 11.2, Profan2Cpp 1.6a)
14.11.2005  
 




Sebastian
König
allô Georg,

oui, sorry - tu as naturellement droite! je hatte qui Doku wohl trop flüchtig gelesen et pas realisert, dass qui Funktion réellement une POINT (zusammengesetzt aus 2 Longs) et plan pas qui Adresse einer POINT-Struktur erwartet. cela gleiche gilt pour ChildWindowFromPoint...

Nochmal sorry pour qui Verwirrung!

MfG

Sebastian
 
Windows XP, XProfan/Profan² 4.5 bis 11
Profan2Cpp-Homepage:  [...] 
Alte Profan²-Seite:  [...] 
14.11.2005  
 





PS: je trouve cela Smilie so G**L.
 
14.11.2005  
 



répondre


Topictitle, max. 100 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

4.138 Views

Untitledvor 0 min.
Torben Nissen02.02.2013

Themeninformationen



Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie