gpt4 book ai didi

c++ - 按钮的工具提示

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:25:40 24 4
gpt4 key购买 nike

我使用 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,
L“按钮”,
L“我的按钮”,
WS_VISIBLE|WS_CHILD,
10, 10, 100, 24,
hWnd,
(HMENU)ID_TOOLTIP,
提示,
空);

最后创建tooltip tooltip_mess = CreateToolTip(ID_TOOLTIP, hInst, hWnd, (PTSTR)"Tooltip message");
但是不行,我看不到我的工具提示,我哪里做错了?

最佳答案

试试这个:

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);

关于c++ - 按钮的工具提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19667854/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com