工具提示控件

DlgToolTips


BCGControlBar使用(五)_工具提示

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 (&params);

 // 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);
}