如何實作氣球工具提示
氣球工具提示類似於標準工具提示,但會顯示在卡通樣式的「氣球」中,並指向工具的字幹。 氣球工具提示可以是單行或多行。 它們會以與標準工具提示相同的方式建立和處理。
下圖顯示字幹和矩形的預設位置。 如果工具離畫面頂端太近,工具提示會出現在工具矩形的下方和右邊。 如果工具離畫面右側太近,則會套用類似的原則,但工具提示會出現在工具矩形的左邊。
您可以在工具提示 TOOLINFO 結構的 uFlags 成員中設定TTF_CENTERTIP旗標,以變更預設位置。 在此情況下,字幹通常會指向工具矩形下邊緣的中心,而文字矩形會顯示在工具正下方。 字幹會附加至上邊緣中央的文字矩形。 如果工具離螢幕底部太近,文字矩形會置中於工具上方,而字幹會連接到下邊緣的中心。
下圖顯示以工具為中心的工具提示。
如果您想要指定字幹點的位置,請在工具提示 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 );
}
相關主題