我有问题,希望你能帮助我。已经超出我的研究运气...尝试stackoverflow,谷歌,甚至雅虎......
如何强制使用工具提示而不使用鼠标?
我目前正在实施一些Windows自动化,需要强制显示工具提示。
喜欢这个。通常你必须把鼠标放在那个栏上1到2秒钟。
我想强制使用WINAPI或类似的东西来显示这些工具提示。
Somethink喜欢" SendMessage / Postmessage(hwnd," WM_COMEOUTTOOLTIP",0,lParam(带x和y位置)"。
WINAPI中是否存在类似的内容?谷歌搜索疯了但什么也没找到。
谢谢你们的帮助!
乔纳森
答案 0 :(得分:6)
This SO Answer提到您可以使用TTM_POPUP message显示工具提示,使用TTM_TRACKPOSITION设置工具提示的位置。
编辑:我对此有点好奇,并尝试制作一个可行的样本:
a)在清单中包含常用控件或使用源代码中的以下行
#pragma comment(linker,"/manifestdependency:\"type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"")
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);
c)在特定位置显示工具提示(例如,x = 300,y = 300):
SetCursorPos(300, 300);
SendMessage(hWndtoolTip, TTM_POPUP, 0, 0);
答案 1 :(得分:1)
也许this正是您要找的?
由于工具提示是使用CreateWindowEx功能创建的,你不能只使用ShowWindow吗?