본문 바로가기
C & C++/MFC 컨트롤

[공통] 컨트롤에 ToolTip 넣기

by izen8 2011. 3. 27.
반응형

1.요약

Dialog Box의 Control에 Tooltip넣기

2.본문

Tooltip은 CToolTipCtrl 클래스를 이용하면 쉽게 구현할 수 있습니다. 먼저 Create()를 호출해서 Tooltip 객체를 생성합니다. 그리고 나서 AddTool()을 호출해 각각의 컨트롤과 Tooltip 문자열을 연결해 줍니다. 여기서 Tooltip 문자열을 표시해 주는 함수는 ReplyEvent()이며, Tooltip 컨트롤 객체를 생성해 주고 컨트롤과 연결할 수 있는 가장 적당한 곳은 WM_INITDIALOG 메시지의 핸들러(OnInitDialog())입니다.

이렇게 Tooltip을 초기화해 준 후에 ReplyEvent()를 호출하면 툴팁을 볼 수 있으며, 나머지 처리는 PreTranslateMessage()에서 담당합니다.


3.예제

BOOL CTooltipDlg::OnInitDialog()
{
   CDialog::OnInitDialog();

   // 툴팁 컨트롤을 생성해 준다.
   m_ctrTooltip.Create(this);

   // AddTool 함수에 컨트롤 객체의 포인터와 툴팁 문자열을 설정한다.
   m_ctrTooltip.AddTool(&m_ctrEdit, "여기에 이름을 넣으세요");
   m_ctrTooltip.AddTool(&m_ctrBtnOK, "여기를 누르면 확인입니다");
   m_ctrTooltip.AddTool(&m_ctrBtnCancel, "여기를 누르면 취소입니다.");
   return TRUE;
}

BOOL CTooltipDlg::PreTranslateMessage(MSG* pMsg)
{
   if (pMsg->message == WM_LBUTTONDOWN ||
       pMsg->message == WM_LBUTTONUP ||
       pMsg->message == WM_MOUSEMOVE)
   {
       // 툴팁을 보여 준다.
       m_ctrTooltip.RelayEvent(pMsg);
   }
   return CDialog::PreTranslateMessage(pMsg);
}

반응형

댓글