[Visual C++] CToolTipCtrl 사용법

오늘은 ToolTip에 대해 알아보겠습니다.

툴팁이란 아래와 같이 컨트롤에 마우스 오버를 하면 설명 문구가 나오는 것을 말합니다.
해당 기능은 버튼이라던지, 어떤 컨트롤에 대한 표시 설명이나, 컨트롤의 작업에 대한 설명을 적기도합니다.

MFC 프로젝트 생성 후 대화상자 헤더파일에 아래와 같이 멤버변수를 선언해주세요.

CToolTipCtrl m_tooltip;

OnInitDialog에 아래와 같이 코딩합니다.

m_tooltip.Create( this );
    
m_tooltip.AddTool( this, _T( "대화상자 툴팁" ) ); // 대화상자
m_tooltip.AddTool( GetDlgItem( IDOK ), _T( "확인 버튼 툴팁" ) ); // 확인 버튼
m_tooltip.AddTool( GetDlgItem( IDCANCEL ), _T( "취소 버튼 툴팁" ) ); // 취소 버튼

이 상태로 빌드 후 실행하면 해당 컨트롤에 마우스 오버를 하면 툴팁이 표시됩니다. 간단하죠?
툴팁은 기본적으로 5초로 설정 되어 있습니다. 그리고 한줄로 표시되죠.
툴팁에 아래와 같이 긴 문자열을 추가하게 되면 사용자가 읽기 불편할 수 있습니다.

m_tooltip.AddTool( this, _T( "이 대화상자는 툴팁 예제 대화상자입니다. 가나다라마바사아자차카타파하 123456789 ABCDEFGHIJKLMNOPQRSTUVWXYZ" ) );

이런 경우 아래와 같이 \n(뉴라인)과 툴팁 넓이 지정, 팝업 시간 지정을 통해 적절히 조절할 수 있습니다.

m_tooltip.AddTool( this, _T( "이 대화상자는 툴팁 예제 대화상자입니다.\n가나다라마바사아자차카타파하\n123456789\nABCDEFGHIJKLMNOPQRSTUVWXYZ" ) );
m_tooltip.SetMaxTipWidth( 500 ); // 툴팁 넓이 500
m_tooltip.SetDelayTime( TTDT_AUTOPOP, 10 * 1000 ); // 툴팁 팦업 시간 10초

추가적으로 아래와 같이 영역을 지정하여 툴팁을 추가할 수 있습니다.

m_tooltip.AddTool( this, _T("영역 지정 툴팁"), CRect( 0, 0, 100, 100 ), 1 );

이상으로 ToolTip 사용법을 알아봤습니다.