| |
|
|
 Jörg Sellmeyer | Dieser Hilo [...] ha mich en el Concepto gebracht, veces Tooltips a manipulieren. Leider envía XProfan kein wmnotify, si una Tooltip auftaucht. Se puede WM_NOTIFY aber como UserMessage deklarieren, entonces kommt el Message a. Yo bekomme pero no vernünftigen Werte en el entsprechende Struktur. Sombrero ya alguien así rumexperimentiert y es en bessere Ergebnisse gekommen? Yo qué en C gefunden, aber así kann Yo nichts anfangen [...]  Kommentare al besten antes el Starten komplett entfernen, porque que en el Absturzwahrscheinlichkeit auswirken. KompilierenMarcaSeparación'Achtung! Das knallt andauernd! Testcode - auf eigene Gefahr einzusetzen!
$H Messages.ph
Def &TTN_SHOW , -521
Struct NMHDR = hwndFrom&,idFrom&,code&
Declare NMHDR#
Dim NMHDR#,NMHDR
Proc GetNMHDRInfo
Parameters b#
NMHDR# = b#
Dispose b#
Var s$ = Str$(NMHDR#.hwndFrom&) + " " + Str$(NMHDR#.idFrom&) + " " + Str$(NMHDR#.code&) + " " + Str$(&gettickcount)
Dispose NMHDR#
SetText txt&,s$
EndProc
Cls
Var btn1& = Create("Button",%hwnd,"Test 1",100,100,100,30)
Var btn2& = Create("Button",%hwnd,"Test 2",210,100,100,30)
Var tt1& = Create("ToolTip",%hwnd,btn1&,"Test 1")
Var tt2& = Create("ToolTip",%hwnd,btn2&,"Test 2")
Var txt& = Create("Text",%hwnd,"",0,30,400,24)
UserMessages $10,~WM_NOTIFY
While 1
WaitInput
Print %hwnd,btn1&,tt1&,%notifycode,&lparam'," "
Locate 1,1
If %umessage = $10
Break
ElseIf %umessage = ~WM_NOTIFY
If (&wparam = btn1&) Or (&wparam = btn2&)
GetNMHDRInfo(&lparam)
EndIf
'hier wundert mich, daß ich als Notifycode nur -12 erhalte.
'eigentlich erwarte ich -521 für TTN_SHOW
'Außerdem sollte dann &lparam ein Zeiger auf eine Struktur NMHDR sein
'Die Werte darin sind aber für mich nicht in Einklang zu bringen mit dem,
'was in der Api-Hilfe steht.
'Wenn dieser Kommentar vor dem Funktionsaufruf steht, knallt es übrigens häufiger!
EndIf
Wend
Disponer NMHDR#
|
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ...  | 17.11.2011 ▲ |
|
|
|
|
 | Wenn Windows una Nachricht a una wndProc son Así que una call en el wndProc absetzt y Adressen übergibt entonces existieren el Adressen no necesariamente auch todavía después de el wndProc final es qué pero en Erhalt uno UserMessage längst el Fall es.
Angenommen "Windows" macht:
int speicher=createSpeicher() call wndProcOfDaApp, wnd,wm_irgendwas,speicher,0 freiGibSpeicher(speicher)
entonces ists de Sicht el UserMessage längst a spät.
Yo habs para esta Fall no überprüft aber algo como debería uno bedenken.
Sichere Abhilfe schafft como el SubClassProc oder si mans verlustfrei braucht entonces simplemente una nProc como wndProc conjunto. |
|
|
| |
|
|
|
 | Apéndice: Etwas schwindelig se me auch en KompilierenMarcaSeparación porque Usted el Speicher sí no kopierst pero con el Adressen wurstelst.
Usted disposed sí NMHDR#
Übernimm el Adressen en 32 Bit simplemente como int32 o. long y später en 64bit como int64. |
|
|
| |
|
|
|
 Jörg Sellmeyer |
entonces ists de Sicht el UserMessage längst a spät.
Das sería natürlich erklären, por qué en el Struktur nichts drinsteht. Lo reichte sí eigentlich de, daß XProfan wmnotify auch beim Auftauchen uno Tooltips envía y el Systemvarablen entsprechen bestückt. Dann podría uno se que aquí sparen... |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ...  | 17.11.2011 ▲ |
|
|
|
|
 | Oder con otro Worten son Mensajes del usuario para esta Fall ungeeignet pero son sí el SubClassProc. |
|
|
| |
|
|