2013년 1월 12일 토요일

VC2008에서 툴팁 컨트롤 사용하기(how to use CToolTipCtrl)

사용자들은 설명서를 잘 읽지 않기 때문에 프로그램 개발시 그 자체적으로 사용법 설명이 되도록 프로그램을 구성해야 한다. 이때 유용하게 사용되는 것이 툴팁 컨트롤(tooltip control) CToolTipCtrl이다. (주)EMtool.com에서 제공하는 CToolTipEx를 사용할 수도 있다.

툴팁 컨트롤을 사용하려면 적절한 곳에 CToolTipCtrl 혹은 CToolTipEx를 아래처럼 정의한다.
CToolTipEx m_ToolTip;   // 툴팁 컨트롤 변수로 m_ToolTip 정의 

다음으로 OnInitDialog() 혹은 OnInitialUpdate() 같은 초기화 함수에 툴팁을 표시할 다이얼로그 구성요소(dialog item)를 다음처럼 설정해 준다.
m_ToolTip.Create(this);
m_ToolTip.SetDelayTime(1000);   // 1초(1000밀리초) 동안 기다려야 툴팁이 나옴
m_ToolTip.SetDisplayTime(5000);   // 5초(5000밀리초) 동안 툴팁을 출력함 
m_ToolTip.AddTip(GetDlgItem(IDC_STATIC1), _T("툴팁 설명"));   // IDC_STATIC1이란 이름을 가진 구성요소에 '툴팁 설명'이란 툴팁을 연결

CStatic처럼 내부설정에 Notify 항목이 있으면 반드시 True로 만들어야 툴팁이 동작한다.

마지막으로 툴팁이 동작하려면 윈도우 메시지(Windows message)가 왔을 때 가로채야 하므로 다음을 설정해야 한다.
BOOL CMyDlg::PreTranslateMessage(MSG* pMsg)
{
   // TODO: 여기에 특수화된 코드를 추가 및/또는 기본 클래스를 호출합니다.
   m_ToolTip.RelayEvent(pMsg);
   return CDialog::PreTranslateMessage(pMsg);
}

[참고문헌]
[1] 팁스소프트, 툴팁(CToolTipCtrl) 사용하기MFC/API 가이드, 2008.
Enhanced by Zemanta

댓글 없음 :

댓글 쓰기

욕설이나 스팸글은 삭제될 수 있습니다. [전파거북이]는 선플운동의 아름다운 인터넷을 지지합니다.