FreeBasic
Главная
Вход
Регистрация
Пятница, 29.03.2024, 17:44Приветствую Вас Гость | RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум » Freebasic » Вопросы по языку FreeBasic » ToolTip без привязки к контролу\гаджету
ToolTip без привязки к контролу\гаджету
WQДата: Четверг, 18.12.2014, 15:25 | Сообщение # 1
Полковник
Группа: Проверенные
Сообщений: 215
Репутация: 7
Статус: Offline
Нет ли у кого примера ToolTip без привязки к конкретному элементу, а просто вывод по координатам на экране?
 
haavДата: Четверг, 18.12.2014, 17:03 | Сообщение # 2
Генералиссимус
Группа: Администраторы
Сообщений: 1361
Репутация: 49
Статус: 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
Репутация: 7
Статус: Offline
Спасибо!
 
Форум » Freebasic » Вопросы по языку FreeBasic » ToolTip без привязки к контролу\гаджету
  • Страница 1 из 1
  • 1
Поиск: