工具提示控件
DlgToolTips
1.创建类class CCustomToolTipCtrl : public CBCGPToolTipCtrl
virtual CSize GetIconSize ()
{
return CSize (32, 32);
}
void CCustomToolTipCtrl::OnShow(NMHDR* pNMHDR, LRESULT* pResult)
{
m_nCurrID = CWnd::FromHandle ((HWND)pNMHDR->idFrom)->GetDlgCtrlID ();
switch (m_nCurrID)
{
case IDOK:
m_strDesrciption = _T("OK Button description...");//基本描述
break;
case IDCANCEL:
m_strDesrciption = _T("Cancel Button description...");
break;
default:
m_strDesrciption.Empty ();
}
CBCGPToolTipCtrl::OnShow (pNMHDR, pResult);
}
BOOL CCustomToolTipCtrl::OnDrawIcon (CDC* pDC, CRect rectImage)
{
UINT uiBmpResID = 0;
switch (m_nCurrID)
{
case IDOK:
uiBmpResID = IDB_OK;
break;
case IDCANCEL:
uiBmpResID = IDB_CANCEL;
break;
}
if (uiBmpResID == 0)
{
return FALSE;
}
CBCGPToolBarImages image;
image.Load (uiBmpResID);
image.SetSingleImage ();
image.DrawEx (pDC, rectImage, 0);
return TRUE;
}
2.对话框
OnInitDialog()
CMenu* pSysMenu = GetSystemMenu(FALSE);//在系统菜单里增加一个新项
if (pSysMenu != NULL)
{
CString strAboutMenu;
strAboutMenu.LoadString(IDS_ABOUTBOX);
if (!strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
}
}
// Create the ToolTip control.
m_ToolTip.Create(this);
m_ToolTip.Activate(TRUE);
CBCGPToolTipParams params;
params.m_bVislManagerTheme = TRUE;
m_ToolTip.SetParams (¶ms);
// TODO: Use one of the following forms to add controls:
m_ToolTip.AddTool (GetDlgItem(IDOK), _T("This is OK button!"));//另外的描述
m_ToolTip.AddTool (GetDlgItem(IDCANCEL), _T("This is Cancel button!"));
BOOL CDlgToolTipsDlg::PreTranslateMessage(MSG* pMsg)
{
switch (pMsg->message)
{
case WM_KEYDOWN:
case WM_SYSKEYDOWN:
case WM_LBUTTONDOWN:
case WM_RBUTTONDOWN:
case WM_MBUTTONDOWN:
case WM_LBUTTONUP:
case WM_RBUTTONUP:
case WM_MBUTTONUP:
case WM_MOUSEMOVE:
m_ToolTip.RelayEvent(pMsg);
break;
}
return CBCGPDialog::PreTranslateMessage(pMsg);
}