簡體   English   中英

在 C++ 中添加工具提示

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM