共用方式為


如何實作氣球工具提示

氣球工具提示類似於標準工具提示,但會顯示在卡通樣式的「氣球」中,並指向工具的字幹。 氣球工具提示可以是單行或多行。 它們會以與標準工具提示相同的方式建立和處理。

下圖顯示字幹和矩形的預設位置。 如果工具離畫面頂端太近,工具提示會出現在工具矩形的下方和右邊。 如果工具離畫面右側太近,則會套用類似的原則,但工具提示會出現在工具矩形的左邊。

screen shot of a dialog box; a balloon tooltip with one line of text appears above and to the right of the target

您可以在工具提示 TOOLINFO 結構的 uFlags 成員中設定TTF_CENTERTIP旗標,以變更預設位置。 在此情況下,字幹通常會指向工具矩形下邊緣的中心,而文字矩形會顯示在工具正下方。 字幹會附加至上邊緣中央的文字矩形。 如果工具離螢幕底部太近,文字矩形會置中於工具上方,而字幹會連接到下邊緣的中心。

下圖顯示以工具為中心的工具提示。

screen shot of a dialog box; a balloon tooltip with one line of text appears centered below the target

如果您想要指定字幹點的位置,請在工具提示 TOOLINFO 結構的 uFlags 成員中設定TTF_TRACK旗標。 接著,您可以使用 lParam 值中的 x 和 y 座標,藉由傳送TTM_TRACKPOSITION訊息來指定座標。 如果同時設定TTF_CENTERTIP,字幹仍會指向TTM_TRACKPOSITION訊息所指定的位置。

您需要知道的事項

技術

必要條件

  • C/C++
  • Windows 使用者介面程序設計

指示

實作氣球工具提示

下列範例程式代碼示範如何使用TTS_BALLOON工具提示控件樣式來實作置中氣球工具提示

hwndToolTips = CreateWindow(TOOLTIPS_CLASS, NULL, 
                            WS_POPUP | TTS_NOPREFIX | TTS_BALLOON, 
                            0, 0, 0, 0, NULL, NULL, g_hinst, NULL);

if (hwndTooltip)
{
    TOOLINFO ti;

    ti.cbSize   = sizeof(ti);
    ti.uFlags   = TTF_TRANSPARENT | TTF_CENTERTIP;
    ti.hwnd     = hwnd;
    ti.uId      = 0;
    ti.hinst    = NULL;
    ti.lpszText = LPSTR_TEXTCALLBACK;

    GetClientRect(hwnd, &ti.rect);

    SendMessage(hwndToolTips, TTM_ADDTOOL, 0, (LPARAM) &ti );

}
            

使用工具提示控制件

工具提示樣式