VC++鼠标自动提示功能

来源:互联网 发布:omnifocus windows版 编辑:程序博客网 时间:2024/05/16 10:18

1: 在需要加入鼠标提示的窗口的OnInitDialog方法中创建工具栏窗口和图像列表窗口,关联图像列表,设置工具栏按钮文本,启动工具栏的EnablToolTip方法激活提示功能。

BOOL CBookManageDlg::OnInitDialog()

{

       CDialog::OnInitDialog();

       ………..

      

       //先导入图片,在该类的头文件中定义了CImaginList m_imagelist CToolBar m_toolbar

       m_imagelist.Create(30,30,ILC_COLOR24|ILC_MASK,1,1);

       m_imagelist.Add(AfxGetApp()->LoadIcon(IDI_BookInfo));

       m_imagelist.Add(AfxGetApp()->LoadIcon(IDI_BookInStockIcon));

       m_imagelist.Add(AfxGetApp()->LoadIcon(IDI_BookQuery));

       m_imagelist.Add(AfxGetApp()->LoadIcon(IDI_InputStore));

       m_imagelist.Add(AfxGetApp()->LoadIcon(IDI_ShutDown));

 

       UINT array[5];                           //定义工具栏数组

       for(int i=0;i<5;i++)

       {

              array[i]=5000+i;                   //为每个工具栏创建索引

       }

 

       m_toolbar.Create(this);                   //创建工具栏

       m_toolbar.SetButtons(array,5);

       //为每个工具栏设置名称

       m_toolbar.SetButtonText(0,"图书信息");

       m_toolbar.SetButtonText(1,"图书入库");

       m_toolbar.SetButtonText(2,"销售查询");

       m_toolbar.SetButtonText(3,"系统配置");

       m_toolbar.SetButtonText(4,"系统退出");

       m_toolbar.GetToolBarCtrl().SetButtonWidth(60,120);

       m_toolbar.GetToolBarCtrl().SetImageList(&m_imagelist);     //关联图片到按键上

       m_toolbar.SetSizes(CSize(60,60),CSize(25,40));             //设置按键大小

    RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,0);//显示工具

       m_toolbar.EnableToolTips(TRUE); //激活提示功能

      

    return TRUE;  // return TRUE  unless you set the focus to a control

}

 

2:在该对话框的消息映射部分添加ON_NOTIFY_EX映射宏

 

如图:

 

 

 

 

 

 

3:在需要加入鼠标提示的窗口的头文件中,声明OnToolTipNotify函数。

class CXXXXDlg : public CDialog

{

       ………..

     // Generated message map functions

       //{{AFX_MSG(CBookManageDlg)

       virtual BOOL OnInitDialog();

       afx_msg void OnSysCommand(UINT nID, LPARAM lParam);

       afx_msg void OnPaint();

       afx_msg HCURSOR OnQueryDragIcon();

       afx_msg BOOL OnToolTipNotify(UINT id,NMHDR* pNMHDR,LRESULT* pResult);

       //}}AFX_MSG

       DECLARE_MESSAGE_MAP()

};

如图:

 

 

 

 

 

4:添加消息处理函数OnToolTipNotify。声明和定义代码如下:

BOOL CBookManageDlg::OnToolTipNotify(UINT id,NMHDR* pNMHDR,LRESULT* pResult)

{

 

       TOOLTIPTEXT *pTTT=(TOOLTIPTEXT *)pNMHDR;

       UINT nID=pNMHDR->idFrom;                               //获取工具栏按钮ID

       if(nID)

       {

              nID=m_toolbar.CommandToIndex(nID);                   //根据ID获取按钮索引

              if(nID!=-1)

              {

                     switch(nID)

                     {

                     case 0 :

                            {     

                               pTTT->lpszText="图书信息";       //设置提示信息文本

                               pTTT->hinst=AfxGetResourceHandle();

                               return(TRUE);

                            }

                            break;

                    

                     case 1 :

                            {

                               pTTT->lpszText="图书入库";       //设置提示信息文本

                               pTTT->hinst=AfxGetResourceHandle();

                               return(TRUE);

                            }

                            break;

                    

                     case 2 :

                            {

                               pTTT->lpszText="销售查询";       //设置提示信息文本

                               pTTT->hinst=AfxGetResourceHandle();

                               return(TRUE);

                            }

                            break;

 

                     case 3 :

                            {

                               pTTT->lpszText="系统配置";       //设置提示信息文本

                               pTTT->hinst=AfxGetResourceHandle();

                               return(TRUE);

                            }

                            break;

 

                     case 4 :

                            {

                               pTTT->lpszText="系统退出";       //设置提示信息文本

                               pTTT->hinst=AfxGetResourceHandle();

                               return(TRUE);

                            }

                            break;

 

                     }

              }

 

       }

       return(FALSE);

 

}

 

 

 

 作者:biolee        文章总结于:10.3.22         发表于:10.5.30