共用方式為


如何實現氣球工具提示

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

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

對話框的螢幕截圖;有一行文字的氣泡提示會出現在目標 之上和右側

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

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

對話框的螢幕快照;具有一行文字的氣球工具提示會出現在目標下方

如果您想要指定字幹點的位置,請在工具提示的 uFlags 成員 TOOLINFO 結構中設定 TTF_TRACK 旗標。 接著,您可以傳送 TTM_TRACKPOSITION 訊息來指定座標,並在 lParam 值中使用 x 和 y 座標。 如果同時設定 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 );

}
            

使用工具提示控件

工具提示樣式