다음을 통해 공유


CWnd::EnableToolTips

지정 된 창에 대 한 도구 설명이 있습니다.

BOOL EnableToolTips( 
   BOOL bEnable = TRUE 
);

매개 변수

  • bEnable
    도구 설명 컨트롤의 활성화 여부를 지정 합니다. True 이면 수 있는 컨트롤입니다. False 이면 컨트롤을 사용할 수 없습니다.

반환 값

True 이면 도구를 사용 하는 경우. 그렇지 않으면 거짓.

설명

재정의 OnToolHitTest 제공 하는 TOOLINFO 구조체 또는 구조체 창의.

참고

일부 windows 같은 CToolBar, 기본 제공 구현을 제공 OnToolHitTest.

참조 TOOLINFO 에 있는 Windows SDK 이 구조에 대 한 자세한 내용은.

단순히 호출 EnableToolTips 부모 창에서 파생 되지 않은 경우 해당 자식 컨트롤에 대 한 도구 설명을 표시 하는 것 만으로는 충분 하지 않습니다 CFrameWnd. 이 때문에 CFrameWnd 에 대 한 기본 처리기를 제공의 TTN_NEEDTEXT 알림. 부모 창에서 파생 되지 않은 경우 CFrameWnd, 즉, 대화 상자 또는 폼 보기에 있으면 컨트롤이 표시 되지 않습니다 제대로 대 한 처리기를 제공 하지 않으면 어린이 대 한 도구는 TTN_NEEDTEXT 도구를 팁 알림. 참조 도구 팁.

기본 도구 설명을 제공 하 여 windows에 대 한 EnableToolTips 해당 텍스트가 없는. 표시할 도구 설명 텍스트를 검색 하는 TTN_NEEDTEXT 알림 방금 도구 설명 창이 표시 되기 전에 도구 설명 컨트롤이 부모 창에 전송 됩니다. 일부 값을 할당 하려면이 메시지에 대 한 처리기 인지는 pszText 의 멤버는 TOOLTIPTEXT 구조, 텍스트에 대 한 도구 설명이 표시 됩니다.

예제

// 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

참고 항목

참조

CWnd 클래스

계층 구조 차트

CWnd::CancelToolTips

CWnd::OnToolHitTest

CToolBar 클래스

TOOLINFO