ASSERT(strTip.GetLength() < sizeof(pTTT->szText));
::strcpy(pTTT->szText, strTip);
// Set the text color to same color as circle
m_ToolTip.SendMessage(TTM_SETTIPTEXTCOLOR, Color, L);
} else {
pTTT->szText[0] = 0;
}
bHandledNotify = TRUE;
}
return bHandledNotify;
}
BOOL CDTDemoView::PreTranslateMessage(MSG* pMsg) {
if (::IsWindow(m_ToolTip.m_hWnd) && pMsg->hwnd == m_hWnd) {
switch(pMsg->message) {
case WM_LBUTTONDOWN:
case WM_MOUSEMOVE:
case WM_LBUTTONUP:
case WM_RBUTTONDOWN:
case WM_MBUTTONDOWN:
case WM_RBUTTONUP:
case WM_MBUTTONUP:
m_ToolTip.RelayEvent(pMsg);
break;
}
}
return CView::PreTranslateMessage(pMsg);
}
void CDTDemoView::OnMouseMove(UINT nFlags, CPoint point) {
if (::IsWindow(m_ToolTip.m_hWnd)) {
const CCircle* pCircleHit = HitTest(point);
if (!pCircleHit || pCircleHit != m_pCircleHit) {
// Activate() ΡΠΊΡΡΠ²Π°Π΅Ρ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΡ.
m_ToolTip.Activate(FALSE);
}
if (pCircleHit) {
m_ToolTip.Activate(TRUE);
m_pCircleHit = pCircleHit;
}
}
CView::OnMouseMove(nFlags, point);
}
CDTDemoView::OnInitialUpdate ΡΠΎΠ·Π΄Π°Π΅Ρ DataTip ΠΈ ΠΏΠΎΠ΄Π³ΠΎΡΠ°Π²Π»ΠΈΠ²Π°Π΅Ρ Π΅Π³ΠΎ ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ. Π― Π²ΡΠ·ΡΠ²Π°Ρ m_ToolTip.Create ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Ρ Π΅ΠΉ TTS_ALWAYSTIP, ΡΡΠΎΠ±Ρ DataTip ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π»ΡΡ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠΎΠ³ΠΎ, Π°ΠΊΡΠΈΠ²Π½ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ Π½Π΅Ρ. ΠΠ°ΡΠ΅ΠΌ Ρ Π²ΡΠ·ΡΠ²Π°Ρ m_ToolTip.AddTool ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Ρ Π΅ΠΉ CDTDemoView, ΠΊΠ°ΠΊ ΠΎΠΊΠ½ΠΎ, ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΠ΅Π΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ. ΠΠ·-Π·Π° ΡΠΎΠ³ΠΎ, ΡΡΠΎ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π² CToolTipCtrl::AddTool ΠΈΠΌΠ΅ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ (LPSTR_TEXTCALLBACK ΠΊΠ°ΠΊ ΡΠ΅ΠΊΡΡ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠΈ, NULL Π΄Π»Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° lpRectTool ΠΈ 0 Π΄Π»Ρ nIDTool), Π²ΡΠ΅ ΠΎΠΊΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΡΡΠΈΡΠ°ΡΡΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠΌ ΠΈ Π½ΠΎΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΎΠ½Π½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ TTN_NEEDTEXT Π±ΡΠ΄Π΅Ρ ΠΏΠΎΡΠ»Π°Π½ΠΎ CDTDemoView. ΠΡΠ° ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΌΠ½Π΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ΅ΠΊΡΡ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠΈ Π² ΡΡΠ½ΠΊΡΠΈΠΈ CDTDemoView::OnToolTipNeedText.
Π― ΠΏΠΎΡΡΠ»Π°Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ DataTip, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΈΡΡ Π΅Π³ΠΎ ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ. TTM_SETMAXTIPWIDTH ΠΏΠΎΡΡΠ»Π°Π΅ΡΡΡ Ρ Π·Π°Π²Π΅Π΄ΠΎΠΌΠΎ Π±ΠΎΠ»ΡΡΠΈΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ (SHRT_MAX) Π² ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ΅ lParam Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠΉ ΡΠΈΡΠΈΠ½Ρ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠΈ.[2] ΠΡΠΎ Π·Π°ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ToolTip ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»Ρ Π½ΠΎΠ²ΠΎΠΉ ΡΡΡΠΎΠΊΠΈ Π² ΡΡΡΠΎΠΊΠ΅ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠΈ (Π½ΠΎΠ²Π°Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ IE 4.0 Common Controls DLL). ΠΠ°ΡΠ΅ΠΌ Ρ ΡΡΠΈ ΡΠ°Π·Π° ΠΏΠΎΡΡΠ»Π°Ρ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ TTM_SETDELAYTIME.[3] Π ΠΏΠ΅ΡΠ²ΡΠΉ ΡΠ°Π· ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ wParam ΠΈΠΌΠ΅Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ TTDT_AUTOPOP, Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΡΠΎΠΉΡΠΈ Π΄ΠΎ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ToolTip ΠΈΡΡΠ΅Π·Π½Π΅Ρ. ΠΡΠ΅ΠΌΡ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΡΠ΅ΡΡΡ Π² ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ΅ lParam Π·Π°Π²Π΅Π΄ΠΎΠΌΠΎ Π±ΠΎΠ»ΡΡΠΈΠΌ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ (SHRT_MAX), ΡΡΠΎΠ±Ρ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ Π°Π²ΡΠΎΠΈΡΡΠ΅Π·Π°Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΎΠΊ.[4] Π’Π΅ΠΏΠ΅ΡΡ Ρ ΠΌΠΎΠ³Ρ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΠΈΡ Π²ΡΠ΅ΠΌΡ ΠΆΠΈΠ·Π½ΠΈ. ΠΠΎ Π²ΡΠΎΡΠΎΠΉ ΡΠ°Π· Π² wParam ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ TTDT_INITIAL, ΡΡΠΎ Π·Π°Π΄Π°Π΅Ρ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π» ΠΌΠ΅ΠΆΠ΄Ρ ΠΌΠΎΠΌΠ΅Π½ΡΠΎΠΌ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΊΡΡΡΠΎΡΠ° ΠΌΡΡΠΈ ΠΈ ΠΏΠ΅ΡΠ²ΡΠΌ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠΈ. ΠΡΠΎΡ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π» ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ Π² 200 ΠΌΠΈΠ»Π»ΠΈΡΠ΅ΠΊΡΠ½Π΄, ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠ° ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π±ΡΡΡΡΠΎ. Π, Π½Π°ΠΊΠΎΠ½Π΅Ρ, TTDT_RESHOW ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π» ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠΈ ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠΈ ΠΊΡΡΡΠΎΡΠ° Π² Π΄ΡΡΠ³ΠΎΠΉ ΠΊΡΡΠ³. ΠΡΠΎΡ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π» ΡΠ°ΠΊΠΆΠ΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ Π² 200 ΠΌΠΈΠ»Π»ΠΈΡΠ΅ΠΊΡΠ½Π΄. ΠΠΎΡΠ΅ΠΌΡ Ρ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» CToolTipCtrl::SetDelayTime Π΄Π»Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π»ΠΎΠ²? Π ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, CToolTipCtrl::SetDelayTime ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π·Π°Π΄Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π» Π΄Π»Ρ TTDT_AUTOMATIC.
Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ CDTDemoView::OnDraw ΠΈ CDTDemoView::HitTest Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΡΠΎΠ·ΡΠ°ΡΠ½Ρ. CDTDemoView::OnDraw ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΡ ΠΏΠΎ ΠΌΠ°ΡΡΠΈΠ²Ρ ΠΊΡΡΠ³ΠΎΠ², Π²ΡΠ·ΡΠ²Π°Ρ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΡΡΠ³Π° CCircle::Draw. Π€ΡΠ½ΠΊΡΠΈΡ CDTDemoView::HitTest ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ, Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π»ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½Π°Ρ Π΅ΠΌΡ ΡΠΎΡΠΊΠ° Π½Π°Π΄ ΠΊΠ°ΠΊΠΈΠΌ-Π½ΠΈΠ±ΡΠ΄Ρ ΠΊΡΡΠ³ΠΎΠΌ, Π²ΡΠ·ΡΠ²Π°Ρ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΊΡΡΠ³Π° Π² ΠΌΠ°ΡΡΠΈΠ²Π΅ CCircle::HitTest. ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΡΡΠ° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅, ΠΎΠ±ΡΠ°ΡΠ½ΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠΌΡ Π² CDTDemoView::OnDraw. ΠΡΠΎ Π΄Π΅Π»Π°Π΅ΡΡΡ Π΄Π»Ρ ΡΡΠΈΡΡΠ²Π°Π½ΠΈΡ z-ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ (z-order) ΠΊΡΡΠ³ΠΎΠ². ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ ΠΊΡΡΠ³ Π Π½Π°ΡΠΈΡΠΎΠ²Π°Π½ ΠΏΠΎΠ²Π΅ΡΡ ΠΊΡΡΠ³Π° A, ΡΠΎΠ³Π΄Π° ΡΠ½Π°ΡΠ°Π»Π° Π΄ΠΎΠ»ΠΆΠ½Π° Π²ΡΠ·Π²Π°ΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΊΡΡΠ³Π° Π.
Π€ΡΠ½ΠΊΡΠΈΡ CDTDemoView::OnToolTipNeedText ΠΏΠ΅ΡΠ΅Ρ Π²Π°ΡΡΠ²Π°Π΅Ρ Π½ΠΎΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ TTN_NEEDTEXT ΠΎΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°, Π½Π° ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ m_ToolTip. ΠΠ»Π°Π²Π½ΠΎΠ΅ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ β ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, Π½Π°Π΄ ΠΊΠ°ΠΊΠΈΠΌ ΠΊΡΡΠ³ΠΎΠΌ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ ΠΊΡΡΡΠΎΡ ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΠ΅ΠΊΡΡ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠΈ. Π‘Π½Π°ΡΠ°Π»Π° ΠΎΠ½Π° ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΠΊΡΡΡΠΎΡΠ° ΠΌΡΡΠΈ ΠΈ ΠΊΠΎΠ½Π²Π΅ΡΡΠΈΡΡΠ΅Ρ ΠΈΡ Π² ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΡΡ ΡΠΈΡΡΠ΅ΠΌΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ. ΠΠ°ΡΠ΅ΠΌ ΠΈΠ΄Π΅Ρ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ½ΠΎΡΡΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΠΉ ΡΠ°ΡΡΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ. ΠΡΠ»ΠΈ ΡΡΠΎΠ³ΠΎ Π½Π΅ ΡΠ΄Π΅Π»Π°ΡΡ, ΠΏΡΠΎΠΏΠ°Π΄ΡΡ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠΈ Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ², ΡΠ°ΠΊ ΠΊΠ°ΠΊ Π½ΠΎΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΎΠ½Π½ΠΎΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ TTN_NEEDTEXT ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠ°Π½Π΅Π»ΡΡ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ². CDTDemoView::OnToolTipNeedText Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π²ΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ TTN_NEEDTEXT ΠΏΡΠΈ Π°ΠΊΡΠΈΠ²Π½ΠΎΠΌ ΠΎΠΊΠ½Π΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΡ. ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ bHandledNotify ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π»ΠΈ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡΡΡ Π΄Π°Π»ΡΡΠ΅ Π³Π»Π°Π²Π½ΠΎΠΌΡ ΠΎΠΊΠ½Ρ. ΠΡΠ»ΠΈ ΠΊΡΡΡΠΎΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π² ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΠΉ ΡΠ°ΡΡΠΈ ΠΎΠΊΠ½Π°, Ρ ΠΏΡΠΎΠ²Π΅ΡΡΡ Π΅Π³ΠΎ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ Π½Π° ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ½ΠΎΡΡΡ ΠΊΠ°ΠΊΠΎΠΌΡ-Π½ΠΈΠ±ΡΠ΄Ρ ΠΊΡΡΠ³Ρ ΠΈ ΡΠΎΡ ΡΠ°Π½ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ m_pCircleHit. ΠΡΠ° ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² ΡΡΠ½ΠΊΡΠΈΠΈ CDTDemoView::OnMouseMove. ΠΡΠ»ΠΈ ΠΊΡΡΡΠΎΡ ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ Π² ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΊΡΡΠ³ΠΎΠ², Ρ ΡΠΎΠ·Π΄Π°Ρ ΡΡΡΠΎΠΊΡ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠΈ, Π² ΠΊΠΎΡΠΎΡΡΡ Π·Π°Π½ΠΎΡΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΡΠ΅Π½ΡΡΠ°, ΡΠ°Π΄ΠΈΡΡ ΠΈ ΡΠ²Π΅Ρ ΠΊΡΡΠ³Π°. ΠΡΠ° ΡΡΡΠΎΠΊΠ° ΠΊΠΎΠΏΠΈΡΡΠ΅ΡΡΡ Π² ΠΏΠΎΠ»Π΅ szText ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΠΎΠΉ ΡΡΡΡΠΊΡΡΡΡ TOOLTIPTEXT. Π, Π½Π°ΠΊΠΎΠ½Π΅Ρ, Ρ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Ρ ΡΠ²Π΅Ρ ΡΠ΅ΠΊΡΡΠ° ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ TTM_SETTIPTEXTCOLOR.[5] ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ wParam ΡΡΠΎΠ³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ²Π΅ΡΠ° ΡΠ΅ΠΊΡΡΠ°, ΠΈ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ ΡΠ°Π²Π½ΡΠΌ ΡΠ²Π΅ΡΡ ΠΊΡΡΠ³Π° (Π΅ΡΠ΅ ΠΎΠ΄Π½Π° Π½ΠΎΠ²Π°Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ IE 4.0 Common Controls DLL). ΠΡΠ»ΠΈ ΠΊΡΡΡΠΎΡ Π½Π΅ ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ Π½ΠΈ Π² ΠΎΠ΄ΠΈΠ½ ΠΊΡΡΠ³, ΠΏΠΎΠ»Π΅ szText ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½Π° ΠΏΡΡΡΡΡ ΡΡΡΠΎΠΊΡ.
Π€ΡΠ½ΠΊΡΠΈΡ CDTDemoView::PreTranslateMessage ΡΠ΅ΡΡΠ°Π½ΡΠ»ΠΈΡΡΠ΅Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΌΡΡΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ DataTip Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΈ CToolTipCtrl::RelayEvent. CDTDemoView::PreTranslateMessage Π²ΡΠ·ΡΠ²Π°Π΅ΡΡΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ, ΠΏΠΎΡΡΠ»Π°Π΅ΠΌΠΎΠ³ΠΎ ΠΎΠΊΠ½Ρ. ΠΡΠΎΡΠ΅ Π²ΡΠ΅Π³ΠΎ Π²ΡΠ·ΡΠ²Π°ΡΡ CToolTipCtrl::RelayEvent Π·Π΄Π΅ΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΌΠ½Π΅ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ ΠΏΠ΅ΡΠ΅Ρ Π²Π°ΡΡΠΈΠΊΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΠΌΡΡΠΈ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΡΡΠΈΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ DataTip. ΠΠΎΠ΄ΠΎΠ±Π½ΡΠΌ ΠΆΠ΅ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΎΠΊ ΠΊΠ»Π°ΡΡΠΎΠΌ CWnd.
Π€ΡΠ½ΠΊΡΠΈΡ CDTDemoView::OnMouseMove ΠΏΡΡΡΠ΅Ρ ΠΈ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΡ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ½ΠΎΡΡΠΈ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ ΠΊΡΡΡΠΎΡΠ° ΠΊΠ°ΠΊΠΎΠΌΡ-Π½ΠΈΠ±ΡΠ΄Ρ ΠΊΡΡΠ³Ρ, ΡΡΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ HitTest. ΠΡΠ»ΠΈ ΠΊΡΡΡΠΎΡ ΠΌΡΡΠΈ Π½Π΅ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π½Π°Π΄ ΠΊΡΡΠ³ΠΎΠΌ Π»ΠΈΠ±ΠΎ Π΅ΡΠ»ΠΈ ΠΎΠ½ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π½Π΅ Π½Π°Π΄ ΡΠ΅ΠΌ ΠΊΡΡΠ³ΠΎΠΌ, Π½Π°Π΄ ΠΊΠΎΡΠΎΡΡΠΌ ΠΎΠ½ Π½Π°Ρ ΠΎΠ΄ΠΈΠ»ΡΡ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅Π³ΠΎ ΠΏΠΎΠΊΠ°Π·Π° ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠΈ, ΡΠΎ CDTDemoView::OnMouseMove ΠΏΡΡΡΠ΅Ρ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΡ Π²ΡΠ·ΠΎΠ²ΠΎΠΌ m_ToolTip.Activate(FALSE). ΠΠ½Π°ΡΠ΅Π½ΠΈΠ΅ FALSE ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΡΡΠΎ ΡΠ»Π΅ΠΌΠ΅Π½Ρ DataTip Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΡΠΏΡΡΡΠ°Π½. ΠΠ°Π»Π΅Π΅, Π΅ΡΠ»ΠΈ ΠΊΡΡΡΠΎΡ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ Π½Π°Π΄ Π΄ΡΡΠ³ΠΈΠΌ ΠΊΡΡΠ³ΠΎΠΌ, ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠ° ΡΠ½ΠΎΠ²Π° Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡ Π½Π° ΡΠΊΡΠ°Π½ Π²ΡΠ·ΠΎΠ²ΠΎΠΌ m_ToolTip.Activate(TRUE), Π° Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ CDTDemoView::m_pCircleHit Π·Π°Π½ΠΎΡΠΈΡΡΡ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ Π½Π° Π½ΠΎΠ²ΡΠΉ ΠΊΡΡΠ³. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΏΡΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠΈ ΠΊΡΡΡΠΎΡΠ° Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΡΡΠ³Π° Π½Π° Π΄ΡΡΠ³ΠΎΠΉ, Ρ Π²ΡΠΊΠ»ΡΡΠ°Ρ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΡ ΠΈ ΡΡΠ°Π·Ρ Π²ΠΊΠ»ΡΡΠ°Ρ Π΅Π΅. ΠΡΠΎ Π΄Π΅Π»Π°Π΅ΡΡΡ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΡΠ»Π΅ΠΌΠ΅Π½Ρ DataTip Π·Π°ΠΏΡΠΎΡΠΈΠ» Π½ΠΎΠ²ΡΠΉ ΡΠ΅ΠΊΡΡ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠΈ ΡΠ΅ΡΠ΅Π· ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ TTN_NEEDTEXT, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΡ Π½ΠΎΠ²ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ ΠΎ ΠΊΡΡΠ³Π΅. Π IE 4.0 Π΄Π»Ρ ΡΠΊΡΡΡΠΈΡ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠΈ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ TTM_POP, Π½ΠΎ ΡΡΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΡΡΡΡΡΡΠ²ΠΎΠ²Π°Π»ΠΎ Π² ΡΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ ΡΠ°ΠΉΠ»Π° commctrl.h, ΠΊΠΎΡΠΎΡΠ°Ρ Ρ ΠΌΠ΅Π½Ρ Π±ΡΠ»Π°.
ΠΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠΈ Π΄ΠΎΠΌΠ°ΡΠ½Π΅Π³ΠΎ ΠΈΠ·Π³ΠΎΡΠΎΠ²Π»Π΅Π½ΠΈΡ: TitleTips
ΠΠ΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ TTDemo
ΠΠ΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΎΠ½Π½ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ TTDemoDelay
TitleTip β ΡΡΠΎ Π²ΠΈΠ΄ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΎΠΊ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠ²ΠΈΠ΄Π΅ΡΡ Π½Π΅ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΏΠΎΠΊΠ°Π·Π°Π½Π½ΡΠ΅ ΡΡΡΠΎΠΊΠΈ Π² ΡΠΏΠΈΡΠΊΠΎΠ²ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ°ΠΊΠΈΠ΅ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠΈ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΡΡ Π² ΠΎΠΊΠ½Π΅ Project Workspace ΡΡΠ΅Π΄Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Visual C++. ΠΡΠ»ΠΈ ΠΈΠΌΡ ΠΊΠ»Π°ΡΡΠ° Π½Π΅ ΠΏΠΎΠΌΠ΅ΡΠ°Π΅ΡΡΡ Π² ΠΎΠΊΠ½ΠΎ Project Workspace, ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ Π½ΡΠΆΠ½ΡΠΉ ΡΠ΅ΠΊΡΡ ΡΠ΅Π»ΠΈΠΊΠΎΠΌ. ΠΡΠΎ ΠΈΠ·Π±Π°Π²Π»ΡΠ΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΎΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ ΠΈ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠΈ ΡΠΈΡΠΈΠ½Ρ ΠΎΠΊΠ½Π°. Π― Π½Π°ΠΏΠΈΡΠ°Π» Π΄Π΅ΠΌΠΎ-ΠΏΡΠΎΠ΅ΠΊΡ, ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΠΈΠΉ TitleTips Π΄Π»Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ "ΡΠΏΠΈΡΠΎΠΊ". ΠΠ΄Π½Π°ΠΊΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΡ ΠΎΠ΄Π½ΡΠ΅ ΠΏΡΠΈΠ΅ΠΌΡ Π΄Π»Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ Π²ΠΈΠ΄Π° ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΎΠΊ ΠΈ ΠΊ Π΄ΡΡΠ³ΠΈΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ. ΠΠΎΠ΄, ΠΊΠΎΡΠΎΡΡΠΉ Ρ Π½Π°ΠΏΠΈΡΠ°Π», ΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΊΠ°ΠΊ Ρ ΠΎΠ±ΡΡΠ½ΡΠΌΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ "ΡΠΏΠΈΡΠΎΠΊ", ΡΠ°ΠΊ ΠΈ ΡΠΎ ΡΠΏΠΈΡΠΊΠ°ΠΌΠΈ Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠΉ ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΎΠΉ (owner-draw listboxes). Π― Π·Π°ΠΏΠΎΠ»Π½ΠΈΠ» ΠΎΠ±Π° ΡΠΏΠΈΡΠΊΠ° Π½Π°Π·Π²Π°Π½ΠΈΡΠΌΠΈ ΠΌΠΎΠΈΡ Π»ΡΠ±ΠΈΠΌΡΡ ΠΊΠ½ΠΈΠ³ ΠΏΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ (ΡΠΌ. ΡΠΈΡ.9).
Π ΠΈΡ.9. ΠΠ΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² TitleTip
ΠΡ, Π½Π°Π²Π΅ΡΠ½ΠΎΠ΅, ΠΏΠΎΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΠ΅ΡΠ΅ΡΡ, ΠΏΠΎΡΠ΅ΠΌΡ Ρ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠΉ ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΎΠΊ (ΠΏΠΎΡΠ²ΠΈΠ²ΡΠ΅ΠΉΡΡ Π² IE 4.0 Common Controls DLL) Π΄Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ TitleTips. ΠΠ΅Π»ΠΎ Π² ΡΠΎΠΌ, ΡΡΠΎ ΡΠΈΡΠΈΠ½Π° ΠΎΠΊΠ½Π° ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠΈ ΡΠ°ΡΡΡΠΈΡΡΠ²Π°Π΅ΡΡΡ ΠΈΡΡ ΠΎΠ΄Ρ ΠΈΠ· ΡΠΈΡΠΈΠ½Ρ ΠΏΠΎΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ ΡΠ°ΡΡΠΈ ΡΡΡΠΎΠΊΠΈ Π² ΡΠΏΠΈΡΠΊΠ΅. ΠΡΡΠ³ΠΈΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, Ρ Π²Π°Ρ Π½Π΅Ρ ΠΏΡΡΠΌΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ Π½Π°Π΄ ΡΠΈΡΠΈΠ½ΠΎΠΉ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ToolTip. ΠΡΠΎ ΠΌΠ΅ΡΠ°Π΅Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΎΠΊ Π΄Π»Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² "ΡΠΏΠΈΡΠΎΠΊ" Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠΉ ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΎΠΉ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π²Π°ΠΌ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡΡ Π²ΡΠ²Π΅ΡΡΠΈ Π½Π° ΡΠΊΡΠ°Π½ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΠΊΡΡ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Ρ Π΄ΡΠΌΠ°Ρ, Π½ΡΠΆΠ½ΠΎ ΡΠΌΠ΅ΡΡ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠΈ Ρ Π½ΡΠ»Ρ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π²ΡΠ΅Π³Π΄Π° ΠΌΠΎΠΆΠ΅Ρ ΠΎΠΊΠ°Π·Π°ΡΡΡΡ, ΡΡΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ½Π°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΎΠΊ Π½Π΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π½ΡΠΆΠ½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ. ΠΠΎΠΏΡΡΡΠΈΠΌ, Π²Ρ Π·Π°Ρ ΠΎΡΠΈΡΠ΅ ΡΠΎΠ·Π΄Π°ΡΡ Π°Π½ΠΈΠΌΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΈΠ»ΠΈ Π³ΠΎΠ²ΠΎΡΡΡΡΡ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΡ.
ΠΠ° ΡΠΈΡ.10 ΠΏΠΎΠΊΠ°Π·Π°Π½Π° Π΄ΠΈΠ°Π³ΡΠ°ΠΌΠΌΠ° ΠΊΠ»Π°ΡΡΠΎΠ², ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΠΊΠ»Π°ΡΡΠ°ΠΌΠΈ Π½Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ°. ΠΠ»Π°ΡΡ CListBox β ΡΡΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΠΊΠ»Π°ΡΡ MFC, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΠ½ΠΊΠ°ΠΏΡΡΠ»ΠΈΡΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ "ΡΠΏΠΈΡΠΎΠΊ". ΠΠ»Π°ΡΡ CTitleTipListBox ΡΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ ΠΎΡ ΠΊΠ»Π°ΡΡΠ° CListBox ΠΈ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π΅Π½ Π·Π° ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠ°ΠΌΠΈ Π΄Π»Ρ ΡΠΏΠΈΡΠΊΠ°. CTitleTipListBox ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π½Π°ΠΏΡΡΠΌΡΡ, Π΅ΡΠ»ΠΈ Π²Ρ ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΡΠ΅ ΠΎΠ±ΡΡΠ½ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ "ΡΠΏΠΈΡΠΎΠΊ". ΠΠ»Π°ΡΡ CTitleTip ΡΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ ΠΎΡ CWnd ΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ToolTip. ΠΠ»Π°ΡΡ CODListBox β ΡΡΠΎ ΡΠ»Π΅ΠΌΠ΅Π½Ρ "ΡΠΏΠΈΡΠΎΠΊ" Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠΉ ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΎΠΉ, ΠΎΠ½ ΡΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ ΠΎΡ CTitleTipListBox. ΠΠ»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° "ΡΠΏΠΈΡΠΎΠΊ" Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΎΠΉ ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΎΠΉ Π½ΡΠΆΠ½ΠΎ ΡΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ ΠΊΠ»Π°ΡΡ ΠΎΡ CTitleTipListBox ΠΈ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΡΠ½ΠΊΡΠΈΡ CTitleTipListBox::GetIdealItemRect. ΠΡ ΠΎΠ±ΡΡΠ΄ΠΈΠΌ Π΄Π΅ΡΠ°Π»ΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ CTitleTipListBox::GetIdealItemRect ΠΏΠΎΠ·ΠΆΠ΅.