MFC中给对话框添加ToolBar,并显示提示信息

参考:MFC CTooLBar 工具栏显示提示信息ToolTip

在CxxxDlg.h中添加
    CImageList m_imagelist;
    CToolBar m_toolbar;
    afx_msg BOOL OnToolTipNotify(UINT id, NMHDR * pNMHDR, LRESULT * pResult); //for 信息提示

在CxxxDlg.cpp文件:
在OnInitDialog()中添加

// TODO:  在此添加额外的初始化代码
    m_imagelist.Create(32, 32, ILC_COLOR24 | ILC_MASK, 1, 1);
    m_imagelist.Add(theApp.LoadIcon(IDI_ICON_BOOK_INFO));
    m_imagelist.Add(theApp.LoadIcon(IDI_ICON_BOOK_IN));
    m_imagelist.Add(theApp.LoadIcon(IDI_ICON_QUERY));
    m_imagelist.Add(theApp.LoadIcon(IDI_ICON_SYS_CONF));
    m_imagelist.Add(theApp.LoadIcon(IDI_ICON_EXIT));

    //工具栏按钮ID数组
    UINT arrBtnID[5] = { 7001, 7002, 7003, 7004, 7005 };
    //创建工具栏
    m_toolbar.Create(this);
    m_toolbar.SetButtons(arrBtnID, 5);
    //m_toolbar.SetButtonText(0, _T("图书信息"));
    //m_toolbar.SetButtonText(1, _T("图书入库"));
    //m_toolbar.SetButtonText(2, _T("销售查询"));
    //m_toolbar.SetButtonText(3, _T("系统配置"));
    //m_toolbar.SetButtonText(4, _T("系统退出"));
    m_toolbar.GetToolBarCtrl().SetButtonWidth(60, 120);
    m_toolbar.GetToolBarCtrl().SetImageList(&m_imagelist);
    m_toolbar.SetSizes(CSize(60, 60), CSize(32, 32));
    RepositionBars(AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST, 0);
    m_toolbar.EnableToolTips(TRUE);//激活Tip
View Code

添加提示消息的步骤

//// 信息提示 /////
//1. 头文件
afx_msg BOOL OnToolTipNotify(UINT id, NMHDR * pNMHDR, LRESULT * pResult);//for 信息提示
// 2. 消息映射宏
BEGIN_MESSAGE_MAP(CLibraryManagerDlg, CDialogEx)
    ON_WM_SYSCOMMAND()
    ON_WM_PAINT()
    ON_WM_QUERYDRAGICON()
    ON_BN_CLICKED(IDOK, &CLibraryManagerDlg::OnOk)
    //这些是自定义的工具栏按钮的ID,对应的映射函数
    ON_COMMAND(7001, OnBookInfo)
    ON_COMMAND(7002, OnBookIn)
    ON_COMMAND(7003, OnSellQuery)
    ON_COMMAND(7004, OnSysConf)
    ON_COMMAND(7005, OnSysExit)
    ON_NOTIFY_EX(TTN_NEEDTEXT, 0, OnToolTipNotify) // for 消息提示
END_MESSAGE_MAP()

// 3. 映射函数
BOOL CLibraryManagerDlg::OnToolTipNotify(UINT id, NMHDR *pNMHDR, LRESULT *pResult)
{
    TOOLTIPTEXT *pTTT = (TOOLTIPTEXT *)pNMHDR;
    CString str;
    UINT nID = pNMHDR->idFrom; //获取工具栏按钮ID
    if (nID)
    {
        int index = m_toolbar.CommandToIndex(nID); //根据ID获取按钮索引
        if (index != -1)
        {
            switch (index)
            {
            case 0:
                pTTT->lpszText = L"图书信息";
                break;
            case 1:
                pTTT->lpszText = L"图书入库";
                break;
            case 2:
                pTTT->lpszText = L"销售查询";
                break;
            case 3:
                pTTT->lpszText = L"系统配置";
                break;
            case 4:
                pTTT->lpszText = L"系统退出";
                break;
            default:
                pTTT->lpszText = L" ";
                break;

            }

            //获取工具栏文本            
            pTTT->hinst = AfxGetResourceHandle();
            return(TRUE);
        }
    }
    return(FALSE);
}
View Code

 

 

 

 

 

 

****************

posted @ 2020-02-29 20:45  htj10  阅读(568)  评论(0编辑  收藏  举报
TOP