Tooltip관련

특정 컨트롤 위에 마우스 커서가 위치하면 툴팁이 나오게 하는 방법에 대해서 알아보겠습니다.

// 해당 클래스의 헤더파일에 폰트객체를 선언한다.
private:
    CToolTipCtrl m_tip_ctrl;

// ClassWizard에서 PreTranslateMessage 메시지를 등록하고 해당 메시지 핸들러에
// 아래의 코드를 추가한다.
BOOL 클래스명::PreTranslateMessage(MSG* pMsg)
{
    m_tip_ctrl.RelayEvent(pMsg);

    return CDialog::PreTranslateMessage(pMsg);
}

// OnInitDialog()함수에 아래의 코드를 추가한다.
BOOL 클래스명::OnInitDialog()
{
    ………. 중간 생략 ……….

// 툴팁컨트롤을 생성한다.
    m_tip_ctrl.Create(this);

// 툴팁이 사용할 컨트롤의 ID가 IDC_TEST_BTN 이라고 하면 아래와 같이 사용할
    // 내용을 명시해야 한다.
   m_tip_ctrl.AddTool(GetDlgItem(IDC_TEST_BTN), “툴팁 테스트 첫번째!!”);

// (선택사항) 툴팁에 사용할 내용이 너무 긴 경우에 한줄로 표시되면 사용자가 불편할 수 있다.
    // 이런 경우에는 툴팁의 폭을 제한하여 여러줄로 출력하게 만들면 된다.
    // 명시한 툴팁 내용의 폭이 300을 넘어서면 다음줄로 넘겨서 출력한다.
    m_tip_ctrl.SetMaxTipWidth(300);

// (선택사항) 툴팁에 별다른 설정을 하지 않으면 툴팁이 출력되었다가 일정시간이 지나면
    // 사라져 버린다. 보통 이 시간이 너무 짧아서 사용자가 불편함을 느끼는 경우가 있는데
    // 이러한 경우에는 아래의 코드처럼 시간을 늘려주면 된다.
    // 툴팁의 출력지속 시간을 20초로 늘린다. ( 20000 -> 20초 )
    m_tip_ctrl.SetDelayTime(TTDT_AUTOPOP, 20000);

// (선택사항) 동일한 클래스에서 추가적인 컨트롤에 툴팁을 사용하고 싶다면 툴팁 컨트롤을
    // 추가할 필요없이 AddTool 함수만 추가로 호출하면 된다.
    // 추가적으로 툴팁을 사용할 컨트롤의 ID가 IDC_TEST2_BTN 이라고 하면 아래와 같이
    // 툴팁의 내용을 명시하면 된다.
    m_tip_ctrl.AddTool(GetDlgItem(IDC_TEST2_BTN), “툴팁 테스트 두번째!!”);

// (선택사항) 툴팁을 특정 컨트롤이 아닌 사용자 지정 영역을 이용해서 사용하려면 아래와 같이
    // AddTool 함수를 호출하면 된다.
    // this에 해당 하는 윈도우의 시작위치가 (20, 30)이고 끝위치가 (320, 230)인 영역에
    // 마우스 커서가 위치하면 툴팁을 출력한다. 그리고 마지막 인자는 해당영역의 ID로 사용되므로
// 추가적인 영역을 등록할때는 1이 아닌 다른 값으로 등록하면 된다.
    m_tip_ctrl.AddTool(this, “사용자 영역 툴팁 테스트”, CRect(20, 30, 320, 230), 1);

    return TRUE;
}

“Tooltip관련”의 6개의 댓글

  1. 핑백: Green Mountain Energy plans

  2. I seriously love your site.. Pleasant colors & theme.
    Did you make this site yourself? Please reply back as I’m looking to create my own personal blog and would like to펀초

    learn where you got this from or just what the theme is called.

    Cheers!

  3. 핑백: chiem bao thay di chua

  4. 핑백: cc fullz shop

  5. Unquestionably believe that which you said. Your favorite justification appeared to be on the web the easiest thing to be aware of. I say to y

    부산키스방
    u, I definitely get annoyed while people consider worries that they just do not know about. You managed to hit the nail upon the top as well as defined out the whole thing without having side effect , people could take a signal. Will probably be back to get more. Thanks|

  6. 핑백: pasar qq

댓글 남기기