您的位置:首页 > 其它

封装一个Win32弹出提示框的函数(用于Window控件 显示Tooltip)

2011-09-28 14:35 621 查看
原标题:封装一个Win32弹出提示框的函数(用于STATIC等控件显示Tooltip)

HWND WINAPI CreateToolTip(HWND hwndOwner, LPCTSTR szTip)
{
INITCOMMONCONTROLSEX iccex;
HWND hwndTT;                 // handle to the ToolTip control
TOOLINFO ti;
unsigned int uid = 0;       // for ti initialization
RECT rect;                  // for client area coordinates
/* INITIALIZE COMMON CONTROLS */
iccex.dwICC = ICC_WIN95_CLASSES;
iccex.dwSize = sizeof(INITCOMMONCONTROLSEX);
InitCommonControlsEx(&iccex);
/* CREATE A TOOLTIP WINDOW */
hwndTT = CreateWindowEx(WS_EX_TOPMOST,
TOOLTIPS_CLASS,
NULL,
WS_POPUP | TTS_NOPREFIX | TTS_ALWAYSTIP,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
hwndOwner,
NULL,
gAppInstance,
NULL
);
SetWindowPos(hwndTT,
HWND_TOPMOST,
0,
0,
0,
0,
SWP_NOMOVE | SWP_NOSIZE | SWP_NOACTIVATE);
/* GET COORDINATES OF THE MAIN CLIENT AREA */
GetClientRect (hwndOwner, &rect);
/* INITIALIZE MEMBERS OF THE TOOLINFO STRUCTURE */
ti.cbSize = sizeof(TOOLINFO);
ti.uFlags = TTF_SUBCLASS;
ti.hwnd = hwndOwner;
ti.hinst = gAppInstance;
ti.uId = uid;
ti.lpszText = (LPTSTR)szTip;
// ToolTip control will cover the whole window
ti.rect.left = rect.left;
ti.rect.top = rect.top;
ti.rect.right = rect.right;
ti.rect.bottom = rect.bottom;
/* SEND AN ADDTOOL MESSAGE TO THE TOOLTIP CONTROL WINDOW */
SendMessage(hwndTT, TTM_ADDTOOL, 0, (LPARAM) (LPTOOLINFO) &ti);
return hwndTT;
}


封装一个Win32弹出提示框的函数(用于等等HWIN 显示Tooltip)

原文

http://blog.c114.net/html/77/581677-76489.html

不过使用时要注意,在调用之前,HWIN hwndOwner如需重新设置回调函数时,应先设置回调函数在调用此函数

如给某Button增加tooltip

HWND hButton = CreateWindowEx(0, _T("BUTTON"), _T("按钮"), WS_VISIBLE | WS_CHILD , 0, 0,30,30, hwnd, NULL, NULL, NULL);
SetWindowLongPtr (hButton, GWLP_WNDPROC, (LONG_PTR)ButtonCtrlProc);

CreateToolTip(hButton, _T("我是按钮"));
否则Tooltip将无法显示
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐