CWnd::EnableToolTips
特定のペインのツールヒントを有効にします。
BOOL EnableToolTips(
BOOL bEnable = TRUE
);
パラメーター
- bEnable
ツール ヒント コントロールを有効にするか無効にするかどうかを指定します。 [真] は、コントロールを有効にします; FALSE は、コントロールを無効にします。
戻り値
ツール ヒントを有効にすると**[真]** ; それ FALSE。
解説
ウィンドウに TOOLINFO の構造体を提供するためにオーバーライド OnToolHitTest。
注意
一部のウィンドウは、CToolBarなど、OnToolHitTestの組み込み実装を提供します。
この構造体の詳細については、Windows SDK の TOOLINFO を参照してください。
EnableToolTips を呼び出すと、親ウィンドウが CFrameWndから派生して、の子コントロールのツールヒントを表示するわけではありません。 これは CFrameWnd が TTN_NEEDTEXT の通知に既定のハンドラーを提供するためです。 自分の親ウィンドウが CFrameWndつまり、から派生して、ダイアログ ボックスやフォーム ビューの場合、の子コントロールのツール ヒントは TTN_NEEDTEXT のツール ヒントの通知にハンドラーを提供する正しく表示されません。 ツール ヒントを参照してください。
EnableToolTips によって、ウィンドウに指定された既定のツール ヒントとそれに関連付けられたテキストはありません。 ツール ヒントのテキストを取得するには TTN_NEEDTEXT の通知はツール ヒント コントロールの親ウィンドウに表示するには、ツール ヒント]ウィンドウが表示される直前に送信されます。 TOOLTIPTEXT の構造体の pszText のメンバーに値を割り当てるこのメッセージのハンドラーがない場合、ツール ヒントに表示されるテキストはありません。
使用例
// 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
}
必要条件
ヘッダー: afxwin.h