* Project->Add To Project->Component And Controls...->Visual C++ Components->[ToolTip Support]를 Insert한다.
이렇게 하면 아래와 같은 상태를 할 수 있는 상태가 된다.
Ps. 사용할때는 onInitDialog의
m_tooltip.Create(this);
m_tooltip.Activate(TRUE);
이라는 생성 함수 다음에
m_tooltip.AddTool(GetDlgItem(IDC_BTNTODAY), "오늘날짜");
이런식으로 추가하면 된다.
우선 툴팁을 달기 위해, 툴팁을 알아서 처리해 주는 CToolTipCtrl이라는 클래스로 객체를 하나 만듭니다.
즉, 다이얼로그의 헤더 파일에서, 다이얼로그 클래스 안에 다음과 같은 변수를 만들면 되겠죠.
CToolTipCtrl m_tooltip;
그리고 다이얼로그의 onInitDialog()에서 원하시는 버튼이나, 컨트롤들을 이 툴팁 변수에 입력하시면 됩니다.
이때, CToolTipCtrl의 AddTool()이라는 함수를 사용하게됩니다.
이 함수를 도움말에서 찾아보면 다음과 같이 나옵니다.
BOOL AddTool( CWnd* pWnd, LPCTSTR lpszText = LPSTR_TEXTCALLBACK,
LPCRECT lpRectTool = NULL, UINT nIDTool = 0 );
여기서 다른 건 볼 거 없구, 첫번째 것과 두번째 것만 보시면 됩니다.
첫번째 인자는, 툴팁을 달고 싶은 컨트롤의 윈도우 포인터입니다.
두번째 인자는, 툴팁으로 출력하고 싶은 텍스트예요.
만약 다이얼로그에 IDC_TIPBUTTON이라는 버튼이 있고, 이 버튼에 "툴팁"이라는 툴팁을 넣고 싶다면 아래와 같이 하시면 되겠죠.
m_tooltip.AddTool(GetDlgItem(IDC_TIPBUTTON), "툴팁");
....
이렇게 한 다음 한가지 더 해줘야 할게 있습니다.
마우스의 움직임을 툴팁 변수에게 알려줘야 하거든요.
그래야 툴팁을 출력해야 하는 지 판단할거 아닙니까?
그래서 다음과 같이 PreTranslateMessage()라는 함수에 코드를 넣으시면 됩니다.
PreTranslateMessage(MSG* pMsg)
{
// TODO: Add your specialized code here and/or call the base class
switch(pMsg->message)
{
case WM_LBUTTONDOWN:
case WM_LBUTTONUP:
case WM_MOUSEMOVE:
m_tooltip.RelayEvent(pMsg);
break;
default:
break;
}
return CDialog::PreTranslateMessage(pMsg);
}
'개발 > VB' 카테고리의 다른 글
비주얼 베이직에서 사용하는 모든 함수 (0) | 2007.07.19 |
---|---|
[VB] 트레이 아이콘 만들기 (0) | 2007.01.04 |
EditBox의 폰트의 사이즈와 색을 바꾸는 방법 (0) | 2006.06.19 |
int형을 CString 형으로 바꿀려면 (0) | 2006.06.19 |
창을 늘릴때 안에 있는 컨트롤들도 비율 맞춰서 커지게 할려면 (0) | 2006.06.15 |