MFC 在对话框中添加工具条
来源:互联网 发布:红色警戒3mac版下载 编辑:程序博客网 时间:2024/05/16 00:56
1.在ResourceView里加入Toolbar资源,命名IDR_TOOLBAR1
2.在主程序的.h文件中加入变量:
CToolBar m_wndtoolbar;//添加工具栏 CImageList m_ilToolBar;//使工具栏图标显示256色
3.在主程序的.h文件中加入函数:
afx_msg BOOL OnToolTipText(UINT NID, NMHDR* pNMHDR, LRESULT* pResult);//使工具栏显示提示信息
4.在主程序的.h文件中的BEGIN_MESSAGE_MAP(CDetectorDlg, CDialog)函数里加入:
ON_NOTIFY_EX( TTN_NEEDTEXT, 0, OnToolTipText )//使工具栏显示提示信息
5.在主程序的.cpp文件中,在初始化的地方(OnCreate或者OnInitDialog)加入:
//添加一个平面工具栏
if (!m_wndtoolbar.CreateEx( this,TBSTYLE_FLAT , WS_CHILD | WS_VISIBLE | CBRS_ALIGN_TOP | CBRS_GRIPPER | CBRS_TOOLTIPS,CRect(4,4,0,0)) ||!m_wndtoolbar.LoadToolBar(IDR_TOOLBAR1) ){ TRACE0("failed to create toolbar\n"); return FALSE;}m_wndtoolbar.ShowWindow(SW_SHOW);RepositionBars(AFX_IDW_CONTROLBAR_FIRST, AFX_IDW_CONTROLBAR_LAST, 0);
//使工具栏图标显示256色HBITMAP hbm = (HBITMAP)::LoadImage(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDR_TOOLBAR1), //加载IDB_TOOLBARIMAGE_BITMAP, //按位图格式0,0, // cx,cyLR_CREATEDIBSECTION | LR_LOADMAP3DCOLORS );CBitmap bm;bm.Attach(hbm);m_ilToolBar.Create(24,24,ILC_COLOR8, 4, 4);m_ilToolBar.Add(&bm,(CBitmap*)NULL);m_wndtoolbar.GetToolBarCtrl().SetImageList(&m_ilToolBar);
6.在主程序的.cpp文件中编译函数OnToolTipText//使工具栏显示提示信息
BOOL CDetectorDlg::OnToolTipText(UINT, NMHDR* pNMHDR, LRESULT* pResult){ASSERT(pNMHDR->code == TTN_NEEDTEXTA || pNMHDR->code == TTN_NEEDTEXTW); // UNICODE消息 TOOLTIPTEXTA* pTTTA = (TOOLTIPTEXTA*)pNMHDR; TOOLTIPTEXTW* pTTTW = (TOOLTIPTEXTW*)pNMHDR; //TCHAR szFullText[512]; CString strTipText; UINT nID = pNMHDR->idFrom; if (pNMHDR->code == TTN_NEEDTEXTA && (pTTTA->uFlags & TTF_IDISHWND) || pNMHDR->code == TTN_NEEDTEXTW && (pTTTW->uFlags & TTF_IDISHWND)) { // idFrom为工具条的HWND nID = ::GetDlgCtrlID((HWND)nID); } if (nID != 0) //不为分隔符 { strTipText.LoadString(nID); strTipText = strTipText.Mid(strTipText.Find('\n',0)+1);#ifndef _UNICODE if (pNMHDR->code == TTN_NEEDTEXTA){ lstrcpyn(pTTTA->szText, strTipText, sizeof(pTTTA->szText)); }else{ _mbstowcsz(pTTTW->szText, strTipText, sizeof(pTTTW->szText)); }#else if (pNMHDR->code == TTN_NEEDTEXTA){ _wcstombsz(pTTTA->szText, strTipText,sizeof(pTTTA->szText)); } else { lstrcpyn(pTTTW->szText, strTipText, sizeof(pTTTW->szText)); }#endif *pResult = 0; // 使工具条提示窗口在最上面 ::SetWindowPos(pNMHDR->hwndFrom, HWND_TOP, 0, 0, 0, 0,SWP_NOACTIVATE| SWP_NOSIZE|SWP_NOMOVE|SWP_NOOWNERZORDER); return TRUE; } return TRUE;}
7.在ResourceView的String资源里,将工具栏中每个按钮的ID都对应上希望显示的提示信息即可,例如:
toolbar中有一按钮的ID是IDC_OPENFILE,希望显示的提示信息为“打开文件” 那么,你需要做的就是在string资源中加入一条ID同样是IDC_OPENFILE, 内容是: 打开文件
在运行的时候,将鼠标放在按钮上面就会提示 “打开文件”了
这样就完成了所有的步骤。
1 0
- MFC 在对话框中添加工具条
- 对话框中添加工具条
- 在对话框添加真彩色的工具条
- 如何在MFC对话框中添加背景图片
- 在MFC对话框中添加状态栏
- MFC 在对话框中添加WM_ERASEBKGND响应函数
- 在MFC对话框中添加状态栏
- 在MFC对话框中添加状态栏
- 在MFC对话框中添加菜单
- 在MFC(VS2013)对话框中添加菜单
- 在基于对话框MFC中动态的添加对话框
- 如何在对话框中加入工具条
- VC 2010 + MFC : 在对话框里面加入工具条CMFCToolBar
- VC 2010 + MFC : 在对话框里面加入工具条CMFCToolBar
- MFC---添加工具条
- MFC如何在自定义对话框中添加系统图标?
- 在MFC中怎样添加一个非模态的对话框
- 在MFC对话框界面中添加工具栏,控制条
- 野指针与空指针
- Json完成ajax异步局部更新
- web.xml及 web-fragment.xml模板
- mysql查询索引加不加引号性能
- nil、Nil、NULL、NSNull的区别
- MFC 在对话框中添加工具条
- soledede--个性化推荐引擎-Solr实现协同过滤(Item-CF)
- Convert QWERTY to Dvorak
- 30多条mysql数据库优化方法,千万级数据库记录查询轻松解决
- 《英雄去战斗》格斗类手游开发
- HTTP 头参考
- json_encode 的第二个参数详解
- Ubuntu配置SSH免密码登陆
- JVM调优总结 -Xms -Xmx -Xmn -Xss