| |
|
|
| Ist eigentlich nur ein Workaround. Sobald ich was besseres finde, kommts hier hin: KompilierenMarkierenSeparierenDEF @SetWindowLong(3) !USER32,SetWindowLongA
DEF @GetWindowLong(2) !USER32,GetWindowLongA
DEF @SetWindowContextHelpId(2) !USER32,SetWindowContextHelpId
DEF @ChildWindowFromPoint(3) !USER32,ChildWindowFromPoint
DEF GetCursorPos(1) !USER32,GetCursorPos
Def ScreenToClient(2) !USER32,ScreenToClient
Declare long&,Fehler&,HWND&,Style%,Button&,Button2&,Message%,curpos#
Declare Mausx&,Mausy&,Handle&
DIM curpos#,8
USERMESSAGES $0053,$1001
WINDOWTITLE Kontexthilfe
WINDOWSTYLE 4+8+16+512
Window 0,0-640,440
LET Button&=@Control(Button,Dies ist ein Test,$40000000+$10000000+$400000+$1000,20,200,300,30,%HWND,2112,%HINSTANCE)
LET Button2&=@Control(Button,Dies ist ein Test 2,$40000000+$10000000+$400000+$1000,20,240,300,30,%HWND,2113,%HINSTANCE)
@Showwindow(%HWND,0)
LET HWND&=%HWND
LET STYLE%=-20
LET LONG&=@GETWINDOWLONG(HWND&,Style%)
LET FEHLER&=@SETWINDOWLONG(HWND&,Style%,$400 | LONG&)
@Showwindow(%HWND,1)
While %MENUITEM<>-2
IF %uMessage=$0053
@GetCursorPos(curpos#)
@ScreenToClient(%HWND,curpos#)
LET MAUSX&=@LONG(curpos#,0)
LET MAUSY&=@LONG(curpos#,4)
LET HANDLE&=@ChildWindowFromPoint(%HWND,MAUSX&,MAUSY&)
IF HANDLE&=Button&
@messagebox(Hilfe gewählt für Button 1!,Info,64)
elseIF HANDLE&=Button2&
@messagebox(Hilfe gewählt für Button 2!,Info,64)
ENDIF
@SENDMESSAGE(%HWND,$1001,0,0) Usermessage löschen
ENDIF
wend
Dispose curpos#
|
|
|
| |
|
|