Cara Menerapkan Tooltip Balon
Tipsalat balon mirip dengan tipsalat standar, tetapi ditampilkan dalam "balon" bergaya kartun dengan batang menunjuk ke alat. Tipsalat balon dapat berupa satu baris tunggal atau beberapa baris. Mereka dibuat dan ditangani dengan cara yang hampir sama seperti tooltips standar.
Posisi default batang dan persegi diperlihatkan dalam ilustrasi berikut. Jika alat terlalu dekat dengan bagian atas layar, tipsalat muncul di bawah dan di sebelah kanan persegi panjang alat. Jika alat ini terlalu dekat dengan sisi kanan layar, prinsip serupa berlaku, tetapi tipsalat tampak di sebelah kiri persegi panjang alat.
Anda dapat mengubah penempatan bawaan dengan mengatur parameter TTF_CENTERTIP di anggota uFlags dari struktur tooltip TOOLINFO. Dalam hal ini, batang biasanya menunjuk ke tengah tepi bawah persegi panjang alat, dan persegi panjang teks ditampilkan tepat di bawah alat. Batang melekat pada persegi teks di tengah tepi atas. Jika alat terlalu dekat dengan bagian bawah layar, area teks ditempatkan di atas alat, dan garis melekat pada bagian tengah tepi bawah.
Ilustrasi berikut menunjukkan tooltip yang berpusat pada alat.
Jika Anda ingin menentukan ke mana titik batang menunjuk, atur penanda TTF_TRACK dalam elemen uFlags dari tooltip TOOLINFO pada struktur. Anda kemudian menentukan koordinat dengan mengirim pesan TTM_TRACKPOSITION, dengan koordinat x dan y dalam nilai lParam. Jika TTF_CENTERTIP juga diatur, batang masih menunjuk ke posisi yang ditentukan oleh pesan TTM_TRACKPOSITION.
Apa yang perlu Anda ketahui
Teknologi
Prasyarat
- C/C++
- Pemrograman Antarmuka Pengguna Windows
Peraturan
Menerapkan Tooltip Balon
Contoh kode berikut menunjukkan cara mengimplementasikan tooltip balon terpusat dengan menggunakan gaya kontrol tooltip 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 );
}
Topik terkait