Code:
User32Library [COLOR="#FF0000"]=[/COLOR] Library[COLOR="#FF0000"].[/COLOR]Load([COLOR="#800080"]"user32.dll"[/COLOR]) Comctl32Library [COLOR="#FF0000"]=[/COLOR] Library[COLOR="#FF0000"].[/COLOR]Load([COLOR="#800080"]"Comctl32.dll"[/COLOR]) HWND [COLOR="#FF0000"]=[/COLOR] INT HINSTANCE [COLOR="#FF0000"]=[/COLOR] INT UINT_PTR [COLOR="#FF0000"]=[/COLOR] UINT void [COLOR="#FF0000"]=[/COLOR] INT LPTSTR [COLOR="#FF0000"]=[/COLOR] INT LPARAM [COLOR="#FF0000"]=[/COLOR] INT RECT [COLOR="#FF0000"]=[/COLOR] MemoryEx[COLOR="#FF0000"].[/COLOR]DefineStruct[COLOR="#FF0000"]{[/COLOR] INT [COLOR="#800080"]"left"[/COLOR]; INT [COLOR="#800080"]"top"[/COLOR]; INT [COLOR="#800080"]"right"[/COLOR]; INT [COLOR="#800080"]"bottom"[/COLOR]; [COLOR="#FF0000"]}[/COLOR]; INITCOMMONCONTROLSEX [COLOR="#FF0000"]=[/COLOR] MemoryEx[COLOR="#FF0000"].[/COLOR]DefineStruct[COLOR="#FF0000"]{[/COLOR] DWORD [COLOR="#800080"]"dwSize"[/COLOR]; DWORD [COLOR="#800080"]"dwICC"[/COLOR]; [COLOR="#FF0000"]}[/COLOR] TOOLINFOA [COLOR="#FF0000"]=[/COLOR] MemoryEx[COLOR="#FF0000"].[/COLOR]DefineStruct[COLOR="#FF0000"]{[/COLOR] UINT [COLOR="#800080"]"cbSize"[/COLOR]; UINT [COLOR="#800080"]"uFlags"[/COLOR]; HWND [COLOR="#800080"]"hwnd"[/COLOR]; UINT_PTR [COLOR="#800080"]"uId"[/COLOR]; RECT [COLOR="#800080"]"rect"[/COLOR]; HINSTANCE [COLOR="#800080"]"hinst"[/COLOR]; LPTSTR [COLOR="#800080"]"lpszText"[/COLOR]; LPARAM [COLOR="#800080"]"lParam"[/COLOR]; void [COLOR="#800080"]"lpReserved"[/COLOR]; [COLOR="#FF0000"]}[/COLOR]; InitCommonControls [COLOR="#FF0000"]=[/COLOR] [COLOR="#0000FF"]function[/COLOR]() [COLOR="#0000FF"]local[/COLOR] B [COLOR="#FF0000"]=[/COLOR] MemoryEx[COLOR="#FF0000"].[/COLOR]Allocate(MemoryEx[COLOR="#FF0000"].[/COLOR]StructSize(INITCOMMONCONTROLSEX) + [COLOR="#000000"]100[/COLOR]) [COLOR="#0000FF"]if[/COLOR](B)[COLOR="#0000FF"]then[/COLOR] [COLOR="#0000FF"]local[/COLOR] ICC_TAB_CLASSES [COLOR="#FF0000"]=[/COLOR] [COLOR="#000000"]8[/COLOR]; S [COLOR="#FF0000"]=[/COLOR] MemoryEx[COLOR="#FF0000"].[/COLOR]AssignStruct(B + [COLOR="#000000"]50[/COLOR][COLOR="#FF0000"],[/COLOR]INITCOMMONCONTROLSEX) [COLOR="#0000FF"]if[/COLOR] (S) [COLOR="#0000FF"]then[/COLOR] S[COLOR="#FF0000"].[/COLOR]dwSize [COLOR="#FF0000"]=[/COLOR] S:Size() S[COLOR="#FF0000"].[/COLOR]dwICC [COLOR="#FF0000"]=[/COLOR] ICC_TAB_CLASSES [COLOR="#0000FF"]else[/COLOR] MemoryEx[COLOR="#FF0000"].[/COLOR]Free(B) [COLOR="#0000FF"]return[/COLOR] [COLOR="#0000FF"]false[/COLOR] [COLOR="#0000FF"]end[/COLOR] [COLOR="#0000FF"]else[/COLOR] [COLOR="#0000FF"]return[/COLOR] [COLOR="#0000FF"]false[/COLOR] [COLOR="#0000FF"]end[/COLOR] [COLOR="#0000FF"]local[/COLOR] x [COLOR="#FF0000"]=[/COLOR] Comctl32Library[COLOR="#FF0000"].[/COLOR]InitCommonControlsEx(S:GetPointer()) S:Close() MemoryEx[COLOR="#FF0000"].[/COLOR]Free(B) [COLOR="#0000FF"]if[/COLOR] x [COLOR="#FF0000"]==[/COLOR] [COLOR="#000000"]0[/COLOR] [COLOR="#0000FF"]then[/COLOR] [COLOR="#0000FF"]return[/COLOR] [COLOR="#0000FF"]false[/COLOR] [COLOR="#0000FF"]else[/COLOR] [COLOR="#0000FF"]return[/COLOR] [COLOR="#0000FF"]true[/COLOR] [COLOR="#0000FF"]end[/COLOR] [COLOR="#0000FF"]end[/COLOR]; CreateTip [COLOR="#FF0000"]=[/COLOR] [COLOR="#0000FF"]function[/COLOR]() [COLOR="#0000FF"]local[/COLOR] WS_CHILD [COLOR="#FF0000"]=[/COLOR] 0x40000000 [COLOR="#0000FF"]local[/COLOR] WS_EX_TOPMOST [COLOR="#FF0000"]=[/COLOR] 0x00000008 [COLOR="#0000FF"]local[/COLOR] WS_POPUP [COLOR="#FF0000"]=[/COLOR] 0x80000000 [COLOR="#0000FF"]local[/COLOR] TTS_NOPREFIX [COLOR="#FF0000"]=[/COLOR] 0x02 [COLOR="#0000FF"]local[/COLOR] TOOLTIPS_CLASSA [COLOR="#FF0000"]=[/COLOR] [COLOR="#800080"]"tooltips_class32"[/COLOR] [COLOR="#0000FF"]local[/COLOR] TTS_ALWAYSTIP [COLOR="#FF0000"]=[/COLOR] 0x01 [COLOR="#0000FF"]local[/COLOR] CW_USEDEFAULT [COLOR="#FF0000"]=[/COLOR] 0x80000000 [COLOR="#0000FF"]local[/COLOR] S [COLOR="#FF0000"]=[/COLOR] WS_POPUP + TTS_NOPREFIX + TTS_ALWAYSTIP [COLOR="#0000FF"]local[/COLOR] hWnd [COLOR="#FF0000"]=[/COLOR] Application[COLOR="#FF0000"].[/COLOR]GetWndHandle() [COLOR="#0000FF"]local[/COLOR] X [COLOR="#FF0000"]=[/COLOR] User32Library[COLOR="#FF0000"].[/COLOR]CreateWindowExA(WS_EX_TOPMOST[COLOR="#FF0000"],[/COLOR]TOOLTIPS_CLASSA[COLOR="#FF0000"],[/COLOR][COLOR="#000000"]0[/COLOR][COLOR="#FF0000"],[/COLOR]S[COLOR="#FF0000"],[/COLOR]CW_USEDEFAULT[COLOR="#FF0000"],[/COLOR]CW_USEDEFAULT[COLOR="#FF0000"],[/COLOR]CW_USEDEFAULT[COLOR="#FF0000"],[/COLOR]CW_USEDEFAULT[COLOR="#FF0000"],[/COLOR]hWnd[COLOR="#FF0000"],[/COLOR][COLOR="#000000"]0[/COLOR][COLOR="#FF0000"],[/COLOR][COLOR="#000000"]0[/COLOR][COLOR="#FF0000"],[/COLOR][COLOR="#000000"]0[/COLOR]) [COLOR="#0000FF"]if[/COLOR] X [COLOR="#0000FF"]and[/COLOR] ([COLOR="#0000FF"]type[/COLOR](X) [COLOR="#FF0000"]~=[/COLOR] [COLOR="#800080"]"number"[/COLOR]) [COLOR="#0000FF"]then[/COLOR] [COLOR="#0000FF"]return[/COLOR] [COLOR="#0000FF"]false[/COLOR] [COLOR="#0000FF"]end[/COLOR] [COLOR="#0000FF"]local[/COLOR] SWP_NOMOVE [COLOR="#FF0000"]=[/COLOR] 0x0002 [COLOR="#0000FF"]local[/COLOR] SWP_NOSIZE [COLOR="#FF0000"]=[/COLOR] 0x0001 [COLOR="#0000FF"]local[/COLOR] SWP_NOACTIVATE [COLOR="#FF0000"]=[/COLOR] 0x0010 [COLOR="#0000FF"]local[/COLOR] y [COLOR="#FF0000"]=[/COLOR] SWP_NOMOVE + SWP_NOSIZE + SWP_NOACTIVATE User32Library[COLOR="#FF0000"].[/COLOR]SetWindowPos(X[COLOR="#FF0000"],[/COLOR]-[COLOR="#000000"]1[/COLOR][COLOR="#FF0000"],[/COLOR][COLOR="#000000"]0[/COLOR][COLOR="#FF0000"],[/COLOR][COLOR="#000000"]0[/COLOR][COLOR="#FF0000"],[/COLOR][COLOR="#000000"]0[/COLOR][COLOR="#FF0000"],[/COLOR][COLOR="#000000"]0[/COLOR][COLOR="#FF0000"],[/COLOR]y) [COLOR="#0000FF"]return[/COLOR] [COLOR="#0000FF"]true[/COLOR][COLOR="#FF0000"],[/COLOR] X [COLOR="#0000FF"]end[/COLOR]; Activate [COLOR="#FF0000"]=[/COLOR] [COLOR="#0000FF"]function[/COLOR](TWnd) [COLOR="#0000FF"]local[/COLOR] TTM_ACTIVATE [COLOR="#FF0000"]=[/COLOR] 0x401 User32Library[COLOR="#FF0000"].[/COLOR]SendMessageA(TWnd[COLOR="#FF0000"],[/COLOR]TTM_ACTIVATE[COLOR="#FF0000"],[/COLOR][COLOR="#000000"]1[/COLOR][COLOR="#FF0000"],[/COLOR][COLOR="#000000"]0[/COLOR]) [COLOR="#0000FF"]end[/COLOR]; SetTip [COLOR="#FF0000"]=[/COLOR] [COLOR="#0000FF"]function[/COLOR](TWnd[COLOR="#FF0000"],[/COLOR]Txt) [COLOR="#0000FF"]local[/COLOR] R [COLOR="#FF0000"]=[/COLOR] MemoryEx[COLOR="#FF0000"].[/COLOR]Allocate(MemoryEx[COLOR="#FF0000"].[/COLOR]StructSize(RECT) + [COLOR="#000000"]100[/COLOR]) [COLOR="#0000FF"]if[/COLOR](R)[COLOR="#0000FF"]then[/COLOR] Rs [COLOR="#FF0000"]=[/COLOR] MemoryEx[COLOR="#FF0000"].[/COLOR]AssignStruct(R + [COLOR="#000000"]50[/COLOR][COLOR="#FF0000"],[/COLOR] RECT) [COLOR="#0000FF"]if[/COLOR](Rs)[COLOR="#0000FF"]then[/COLOR] [COLOR="#0000FF"]local[/COLOR] x [COLOR="#FF0000"]=[/COLOR] User32Library[COLOR="#FF0000"].[/COLOR]GetClientRect(Application[COLOR="#FF0000"].[/COLOR]GetWndHandle()[COLOR="#FF0000"],[/COLOR]Rs:GetPointer()) [COLOR="#0000FF"]if[/COLOR] x [COLOR="#FF0000"]==[/COLOR] [COLOR="#000000"]0[/COLOR] [COLOR="#0000FF"]then[/COLOR] MemoryEx[COLOR="#FF0000"].[/COLOR]Free(R) Rs:Close() [COLOR="#0000FF"]return[/COLOR] [COLOR="#0000FF"]false[/COLOR] [COLOR="#0000FF"]end[/COLOR] [COLOR="#0000FF"]else[/COLOR] MemoryEx[COLOR="#FF0000"].[/COLOR]Free(R) [COLOR="#0000FF"]return[/COLOR] [COLOR="#0000FF"]false[/COLOR] [COLOR="#0000FF"]end[/COLOR] [COLOR="#0000FF"]else[/COLOR] [COLOR="#0000FF"]return[/COLOR] [COLOR="#0000FF"]false[/COLOR] [COLOR="#0000FF"]end[/COLOR] [COLOR="#0000FF"]local[/COLOR] T [COLOR="#FF0000"]=[/COLOR] MemoryEx[COLOR="#FF0000"].[/COLOR]Allocate(MemoryEx[COLOR="#FF0000"].[/COLOR]StructSize(TOOLINFOA) + [COLOR="#000000"]100[/COLOR]) [COLOR="#0000FF"]if[/COLOR](T)[COLOR="#0000FF"]then[/COLOR] [COLOR="#0000FF"]local[/COLOR] Ts [COLOR="#FF0000"]=[/COLOR] MemoryEx[COLOR="#FF0000"].[/COLOR]AssignStruct(T + [COLOR="#000000"]50[/COLOR][COLOR="#FF0000"],[/COLOR] TOOLINFOA) [COLOR="#0000FF"]if[/COLOR](Ts)[COLOR="#0000FF"]then[/COLOR] [COLOR="#0000FF"]local[/COLOR] TTF_SUBCLASS [COLOR="#FF0000"]=[/COLOR] 0x0010 Ts[COLOR="#FF0000"].[/COLOR]cbSize [COLOR="#FF0000"]=[/COLOR] Ts:Size() Ts[COLOR="#FF0000"].[/COLOR]uFlags [COLOR="#FF0000"]=[/COLOR] TTF_SUBCLASS Ts[COLOR="#FF0000"].[/COLOR]hwnd [COLOR="#FF0000"]=[/COLOR] Application[COLOR="#FF0000"].[/COLOR]GetWndHandle() Ts[COLOR="#FF0000"].[/COLOR]uId [COLOR="#FF0000"]=[/COLOR] [COLOR="#000000"]0[/COLOR] Ts[COLOR="#FF0000"].[/COLOR]rect [COLOR="#FF0000"]=[/COLOR] Rs:GetPointer() Ts[COLOR="#FF0000"].[/COLOR]hinst [COLOR="#FF0000"]=[/COLOR] [COLOR="#000000"]0[/COLOR] [COLOR="#0000FF"]local[/COLOR] n [COLOR="#FF0000"]=[/COLOR] String[COLOR="#FF0000"].[/COLOR]Length(Txt) + [COLOR="#000000"]1[/COLOR] [COLOR="#0000FF"]local[/COLOR] m [COLOR="#FF0000"]=[/COLOR] MemoryEx[COLOR="#FF0000"].[/COLOR]Allocate(n) MemoryEx[COLOR="#FF0000"].[/COLOR]String(m[COLOR="#FF0000"],[/COLOR]-[COLOR="#000000"]1[/COLOR][COLOR="#FF0000"],[/COLOR]MEMEX_ASCII[COLOR="#FF0000"],[/COLOR]Txt) Ts[COLOR="#FF0000"].[/COLOR]lpszText [COLOR="#FF0000"]=[/COLOR] m Ts[COLOR="#FF0000"].[/COLOR]lParam [COLOR="#FF0000"]=[/COLOR] [COLOR="#000000"]101[/COLOR] Ts[COLOR="#FF0000"].[/COLOR]lpReserved [COLOR="#FF0000"]=[/COLOR] [COLOR="#000000"]0[/COLOR] [COLOR="#0000FF"]local[/COLOR] TTM_ADDTOOLA [COLOR="#FF0000"]=[/COLOR] 0x404 [COLOR="#0000FF"]local[/COLOR] x [COLOR="#FF0000"]=[/COLOR] User32Library[COLOR="#FF0000"].[/COLOR]SendMessageA(TWnd[COLOR="#FF0000"],[/COLOR]TTM_ADDTOOLA[COLOR="#FF0000"],[/COLOR][COLOR="#000000"]0[/COLOR][COLOR="#FF0000"],[/COLOR]Ts:GetPointer()) MemoryEx[COLOR="#FF0000"].[/COLOR]Free(T) MemoryEx[COLOR="#FF0000"].[/COLOR]Free(m) Ts:Close(); MemoryEx[COLOR="#FF0000"].[/COLOR]Free(R) Rs:Close() [COLOR="#0000FF"]if[/COLOR] x [COLOR="#FF0000"]==[/COLOR] [COLOR="#000000"]0[/COLOR] [COLOR="#0000FF"]then[/COLOR] [COLOR="#0000FF"]return[/COLOR] [COLOR="#0000FF"]false[/COLOR] [COLOR="#0000FF"]else[/COLOR] [COLOR="#0000FF"]return[/COLOR] [COLOR="#0000FF"]true[/COLOR] [COLOR="#0000FF"]end[/COLOR] [COLOR="#0000FF"]else[/COLOR] MemoryEx[COLOR="#FF0000"].[/COLOR]Free(R) Rs:Close() MemoryEx[COLOR="#FF0000"].[/COLOR]Free(T) [COLOR="#0000FF"]return[/COLOR] [COLOR="#0000FF"]false[/COLOR] [COLOR="#0000FF"]end[/COLOR] [COLOR="#0000FF"]else[/COLOR] [COLOR="#0000FF"]return[/COLOR] [COLOR="#0000FF"]false[/COLOR] [COLOR="#0000FF"]end[/COLOR] [COLOR="#0000FF"]end[/COLOR]; CT [COLOR="#FF0000"]=[/COLOR] InitCommonControls() _[COLOR="#FF0000"],[/COLOR] Tip [COLOR="#FF0000"]=[/COLOR] CreateTip() Activate(Tip) _ [COLOR="#FF0000"]=[/COLOR] SetTip(Tip[COLOR="#FF0000"],[/COLOR][COLOR="#800080"]"My tooltip"[/COLOR]) Dialog[COLOR="#FF0000"].[/COLOR]Message([COLOR="#800080"]""[/COLOR][COLOR="#FF0000"],[/COLOR][COLOR="#800080"]"Common Controls = "[/COLOR][COLOR="#FF0000"]..[/COLOR][COLOR="#0000FF"]tostring[/COLOR](CT)[COLOR="#FF0000"]..[/COLOR][COLOR="#800080"]"[COLOR="#800080"]\n[/COLOR]Tip Handle = "[/COLOR][COLOR="#FF0000"]..[/COLOR][COLOR="#0000FF"]tostring[/COLOR](Tip)[COLOR="#FF0000"]..[/COLOR][COLOR="#800080"]"[COLOR="#800080"]\n[/COLOR]Tip Set = "[/COLOR][COLOR="#FF0000"]..[/COLOR][COLOR="#0000FF"]tostring[/COLOR](_))