按钮的工具提示 [英] Tooltip for button
问题描述
我使用MSDN的功能创建控件的工具提示
I use function from MSDN Create a Tooltip for a Control
HWND CreateToolTip(int toolID, HINSTANCE hInst, HWND hDlg, PTSTR pszText) {
if (!toolID || !hDlg || !pszText) {
return FALSE;
}
HWND hwndTool = GetDlgItem(hDlg, toolID);
HWND hwndTip = CreateWindowEx(NULL, TOOLTIPS_CLASS, NULL,
WS_POPUP |TTS_ALWAYSTIP | TTS_BALLOON,
CW_USEDEFAULT, CW_USEDEFAULT,
CW_USEDEFAULT, CW_USEDEFAULT,
hDlg, NULL,
hInst, NULL);
if (!hwndTool || !hwndTip) {
return (HWND)NULL;
}
TOOLINFO toolInfo;
toolInfo.cbSize = sizeof(toolInfo);
toolInfo.hwnd = hDlg;
toolInfo.uFlags = TTF_IDISHWND | TTF_SUBCLASS;
toolInfo.uId = (UINT_PTR)hwndTool;
toolInfo.lpszText = pszText;
SendMessage(hwndTip, TTM_ADDTOOL, 0, (LPARAM)&toolInfo);
return hwndTip;
}
然后在 WndProc
WM_CREATE
我创建按钮 Button = CreateWindowEx(
0,
LBUTTON,
L ,
WS_VISIBLE | WS_CHILD,
10,10,100,24,
hWnd,
(HMENU)ID_TOOLTIP,
hInst,
NULL);
elves最后创建工具提示 tooltip_mess = CreateToolTip(ID_TOOLTIP,hInst,hWnd,(PTSTR)Tooltip message);
Then in WndProc
WM_CREATE
I create button Button=CreateWindowEx(
0,
L"BUTTON",
L"My Button",
WS_VISIBLE|WS_CHILD,
10, 10, 100, 24,
hWnd,
(HMENU)ID_TOOLTIP,
hInst,
NULL);
Finally create tooltip tooltip_mess = CreateToolTip(ID_TOOLTIP, hInst, hWnd, (PTSTR)"Tooltip message");
But it doesn't work, I can't see my tooltip, where I did wrong?
推荐答案
尝试这是:
HWND CreateToolTip(int toolID, HWND hDlg, HINSTANCE hInst, PTSTR pszText)
{
if (!toolID || !hDlg || !pszText)
{
return NULL;
}
// Get the window of the tool.
HWND hwndTool = GetDlgItem(hDlg, toolID);
if (!hwndTool)
{
return NULL;
}
// Create the tooltip. g_hInst is the global instance handle.
HWND hwndTip = CreateWindowEx(NULL, TOOLTIPS_CLASS, NULL,
WS_POPUP |TTS_ALWAYSTIP | TTS_BALLOON,
CW_USEDEFAULT, CW_USEDEFAULT,
CW_USEDEFAULT, CW_USEDEFAULT,
hDlg, NULL,
hInst, NULL);
if (!hwndTip)
{
return NULL;
}
// Associate the tooltip with the tool.
TOOLINFO toolInfo = { 0 };
toolInfo.cbSize = sizeof(toolInfo);
toolInfo.hwnd = hDlg;
toolInfo.uFlags = TTF_IDISHWND | TTF_SUBCLASS;
toolInfo.uId = (UINT_PTR)hwndTool;
toolInfo.lpszText = pszText;
if (!SendMessage(hwndTip, TTM_ADDTOOL, 0, (LPARAM)&toolInfo))
{
DestroyWindow(hwndTip);
return NULL;
}
return hwndTip;
}
case WM_CREATE:
{
Button = CreateWindowEx( 0, L"BUTTON", L"My Button", WS_VISIBLE|WS_CHILD, 10, 10, 100, 24, hWnd, (HMENU)ID_TOOLTIP, hInst, NULL);
tooltip_mess = CreateToolTip(ID_TOOLTIP, hWnd, hInst, L"Tooltip message");
break;
}
if (tooltip_mess)
SendMessage(tooltip_mess, TTM_ACTIVATE, TRUE, 0);
if (tooltip_mess)
SendMessage(tooltip_mess, TTM_ACTIVATE, FALSE, 0);
这篇关于按钮的工具提示的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!