프로그래밍 세계/MFC & API

[펌] Dialog Box의 Control에 Tooltip넣기

깡다구짱 2008. 10. 3. 20:23

 

Dialog Box의 Control에 Tooltip넣기


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);    // 헤더파일에 CToolTipCtrl m_ctrTooltip;
    // 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); 
}