CWnd::EnableToolTips
Verilen pencerenin araç ipuçları sağlar.
BOOL EnableToolTips(
BOOL bEnable = TRUE
);
Parametreler
- bEnable
Araç İpucu denetim etkin mi yoksa devre dışı mı olduğunu belirtir. GERÇEK ; denetim sağlar YANLIŞ denetimini devre dışı bırakır.
Dönüş Değeri
GERÇEK araç ipuçlarını etkinleştirilmişse; Aksi halde yanlış.
Notlar
Geçersiz kılma OnToolHitTest sağlamak için TOOLINFO yapı ya da yapının penceresi.
Not
Bazı pencereleri gibi CToolBar, biri yerleşik bir uygulama sağlayabilecek OnToolHitTest.
Bkz: TOOLINFO , Windows SDK Bu yapı hakkında daha fazla bilgi için.
Basitçe çağırmadan EnableToolTips üst pencere türetilir sürece çocuğunuz denetimleri için araç ipuçlarını görüntülemek yeterli değil CFrameWnd. Bu, çünkü CFrameWnd için varsayılan işleyici sağlar ttn_needtext bildirim. Ana pencere türetilir değil, CFrameWnd, yani, bir iletişim kutusu ya da form görünümünde ise, ipuçları Aracı denetimleri olmayan görüntüler doğru bir işleyici sağlamazsanız, çocuğunuz için ttn_needtext araç ipucu bildirimi. Bkz: araç ipuçlarını.
Windows tarafından sağlanan varsayılan araç ipuçlarını EnableToolTips kendileri ile ilikili metin yoktur. Görüntülemek araç ipucu metni almak için ttn_needtext hemen araç ipucu penceresi görüntülenmeden önce bildirim için araç ipucu denetimin üst pencere gönderilir. Bazı değer atamak bu ileti için bir işleyici yok olup olmadığını pszText üyesi Araç İpucu metni yapısı, araç ipucu için görüntülenen metin yok olacaktır.
Örnek
// From message map for CMdiView, a CView-derived class
ON_NOTIFY_EX_RANGE(TTN_NEEDTEXTW, 0, 0xFFFF, &CMdiView::OnToolTipNotify)
ON_NOTIFY_EX_RANGE(TTN_NEEDTEXTA, 0, 0xFFFF, &CMdiView::OnToolTipNotify)
void CMdiView::OnInitialUpdate()
{
CView::OnInitialUpdate();
m_Edit.Create(ES_MULTILINE | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_BORDER,
CRect(10, 10, 100, 100), this, IDC_TTEDIT);
EnableToolTips(TRUE); // enable tool tips for view
}
//Notification handler
BOOL CMdiView::OnToolTipNotify(UINT id, NMHDR* pNMHDR, LRESULT* pResult)
{
UNREFERENCED_PARAMETER(id);
UNREFERENCED_PARAMETER(pResult);
// need to handle both ANSI and UNICODE versions of the message
TOOLTIPTEXTA* pTTTA = (TOOLTIPTEXTA*)pNMHDR;
TOOLTIPTEXTW* pTTTW = (TOOLTIPTEXTW*)pNMHDR;
CStringA strTipText;
UINT_PTR nID = pNMHDR->idFrom;
if (pNMHDR->code == TTN_NEEDTEXTA && (pTTTA->uFlags & TTF_IDISHWND) ||
pNMHDR->code == TTN_NEEDTEXTW && (pTTTW->uFlags & TTF_IDISHWND))
{
// idFrom is actually the HWND of the tool
nID = ::GetDlgCtrlID((HWND)nID);
}
if (nID != 0) // will be zero on a separator
strTipText.Format("Control ID = %d", nID);
if (pNMHDR->code == TTN_NEEDTEXTA)
{
strncpy_s(pTTTA->szText, sizeof(pTTTA->szText), strTipText,
strTipText.GetLength() + 1);
}
else
{
::MultiByteToWideChar(CP_ACP , 0, strTipText, strTipText.GetLength() + 1,
pTTTW->szText, sizeof(pTTTW->szText)/(sizeof pTTTW->szText[0]));
}
return TRUE; // message was handled
}
Gereksinimler
Başlık: afxwin.h