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
添加提示消息的步骤
//// 信息提示 ///// //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); }
****************
常记溪亭日暮,沉醉不知归路。兴尽晚回舟,误入藕花深处。争渡,争渡,惊起一滩鸥鹭。
昨夜雨疏风骤,浓睡不消残酒。试问卷帘人,却道海棠依旧。知否?知否?应是绿肥红瘦。