Jon*_*ied 2 winapi mouseover tooltip sendmessage
我有问题,希望你能帮助我.已经离开了我的研究运气...试过stackoverflow,谷歌,甚至雅虎...
如何强制提示工具提示不使用鼠标?
我目前正在实现一些Windows自动化,需要强制显示工具提示.
像这样.通常你必须把鼠标放在那个栏上1到2秒钟.
我想强制使用WINAPI或类似的东西来显示这些工具提示.
想想像"SendMessage/Postmessage(hwnd,"WM_COMEOUTTOOLTIP",0,lParam(带x和y位置)").
WINAPI中是否存在类似的内容?谷歌疯了但没有发现任何东西.
谢谢大家帮助!
乔纳森
本SO答案提到您可以使用TTM_POPUP消息显示工具提示,使用TTM_TRACKPOSITION设置工具提示的位置.
编辑:我对此有点好奇,并试图制作一个工作样本:
a)在清单中包含常用控件或在源代码中使用以下行
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"")
Run Code Online (Sandbox Code Playgroud)
b)创建并设置工具提示窗口
hWndtoolTip = CreateWindowEx(WS_EX_TOPMOST, TOOLTIPS_CLASS, 0, WS_POPUP | TTS_NOPREFIX | TTS_ALWAYSTIP, CW_USEDEFAULT, CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT, hWndParent, 0, hInstance, 0);
SetWindowPos(hWndtoolTip, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE);
TOOLINFO ti = {};
ti.cbSize = sizeof(TOOLINFO);
ti.uFlags = TTF_SUBCLASS;
ti.hwnd = hWndParent;
ti.hinst = hInstance;
ti.uId = (UINT)hWndtoolTip;
ti.lpszText = L"tool-tip";
GetClientRect(hWndParent, &ti.rect);
SendMessage(hWndtoolTip, TTM_ADDTOOL, 0, (LPARAM)&ti);
Run Code Online (Sandbox Code Playgroud)
c)在特定位置显示工具提示(例如,x = 300,y = 300):
SetCursorPos(300, 300);
SendMessage(hWndtoolTip, TTM_POPUP, 0, 0);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1461 次 |
| 最近记录: |