[英]Add tooltip in C++
我正在嘗試為 DlgItem 實現工具提示,但它不起作用,沒有顯示任何文本。 我試過這個 function:
HWND CreateToolTip(int toolID, HWND hDlg, PTSTR pszText)
{
if (!toolID || !hDlg || !pszText)
{
return FALSE;
}
// Get the window of the tool.
HWND hwndTool = GetDlgItem(hDlg, toolID);
// 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,
GetModuleHandle(NULL), NULL);
if (!hwndTool || !hwndTip)
{
return (HWND)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;
SendMessage(hwndTip, TTM_ADDTOOL, 0, (LPARAM)&toolInfo);
return hwndTip;
}
我這樣稱呼這個 function :
CreateToolTip(ITEM_ID, this->m_hWnd, L"MY_TEXT");
但工具提示不在這里。
你有什么想法? 在此先感謝,
我能夠使用此代碼正常工作,我認為您沒有生成清單文件,導致SendMessage(hwndTip, TTM_ADDTOOL, 0, (LPARAM)&toolInfo);
打電話失敗。
如果您使用 Visual Studio,go 來項目屬性:
項目 -> 屬性 -> Linker -> 清單 -> 生成清單文件:是
然后添加列表樣式,參考Enabling Visual Styles :
#pragma comment(linker,"\"/manifestdependency:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"")
最后它對我有用:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.