WQ | Дата: Четверг, 18.12.2014, 15:25 | Сообщение # 1 |
Полковник
Группа: Проверенные
Сообщений: 215
Статус: Offline
| Нет ли у кого примера ToolTip без привязки к конкретному элементу, а просто вывод по координатам на экране?
|
|
| |
haav | Дата: Четверг, 18.12.2014, 17:03 | Сообщение # 2 |
![haav](/avatar/00/5416-572652.jpg) Генералиссимус
Группа: Администраторы
Сообщений: 1376
Статус: Offline
| Код #Include "windows.bi" #Include "win/commctrl.bi" InitCommonControls() #Ifndef TTM_SETTITLE #DEFINE TTM_SETTITLE &h420 #EndIf #Ifndef TTI_INFO #DEFINE TTI_INFO 1 #EndIf Dim msg As MSG Dim As WNDCLASSEX wc Dim As String NameClass="MyClass" Dim Shared As HINSTANCE Hinst:Hinst=GetModuleHandle(0) Dim Shared As HWND hwnd Dim Shared XY(3) As Point = {(100,100),(200,200),(300,300),(400,400)} Dim Shared Tool As TOOLINFO Dim Shared As HWND tooltipicon
Function wndproc(hwnd As HWND, msg As UInteger,_ wparam As WPARAM, lparam As LPARAM) As Integer
Select Case msg Case WM_CREATE tooltipicon= CreateWindowEx(WS_EX_TOPMOST,"Tooltips_Class32",0,_ TTS_ALWAYSTIP Or TTS_BALLOON Or WS_POPUP,CW_USEDEFAULT,CW_USEDEFAULT,_ CW_USEDEFAULT,CW_USEDEFAULT,hwnd,0,0,0)
Tool.cbSize=SizeOf(TOOLINFO) Tool.uFlags= TTF_TRACK Tool.hInst=Hinst Tool.hwnd=hwnd Tool.lpszText=Cast(LPTSTR,StrPtr("Подсказка")) SendMessage(tooltipicon,TTM_ADDTOOL,0,Cast(LPARAM,@Tool)) SendMessage(tooltipicon,TTM_SETTITLE,TTI_INFO,Cast(LPARAM,@"Информация")) Case WM_DESTROY PostQuitMessage(0) End Select Return DefWindowProc(hwnd,msg,wparam,lparam) End Function
Sub TimerProc() Static As Integer C If C>3 Then KillTimer(hwnd,1) SendMessage(tooltipicon, TTM_TRACKACTIVATE, FALSE, Cast(LPARAM,@Tool)) EndIf SendMessage(tooltipicon, TTM_TRACKPOSITION, 0, MAKELONG(XY(C).x,XY(C).y)) SendMessage(tooltipicon, TTM_TRACKACTIVATE, TRUE, Cast(LPARAM,@Tool)) C+=1 End Sub
With wc .cbSize=SizeOf(WNDCLASSEX) .style=CS_HREDRAW Or CS_VREDRAW .lpfnWndProc=@wndproc .hInstance=Hinst .hIcon=LoadIcon(0,IDI_QUESTION) .hCursor=LoadCursor(0,IDC_ARROW) .hbrBackground=Cast(HBRUSH,COLOR_WINDOW) .lpszClassName=StrPtr(NameClass) .hIconSm=.hIcon End With
If RegisterClassEx(@wc)=0 Then Print "Register error, press any key" Sleep End EndIf
hwnd = CreateWindowEx(0,NameClass,"Главное окно",_ WS_VISIBLE Or WS_OVERLAPPEDWINDOW,500,100,150,80,0,0,Hinst,0)
SetTimer(hwnd,1,1000,Cast(Any Ptr,@TimerProc))
While GetMessage(@msg,0,0,0) TranslateMessage(@msg) DispatchMessage(@msg) Wend
Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
|
|
| |
WQ | Дата: Пятница, 19.12.2014, 19:42 | Сообщение # 3 |
Полковник
Группа: Проверенные
Сообщений: 215
Статус: Offline
| Спасибо!
|
|
| |