首页 [课程]VC对话框的工具栏添加图标

[课程]VC对话框的工具栏添加图标

举报
开通vip

[课程]VC对话框的工具栏添加图标[课程]VC对话框的工具栏添加图标 VC对话框的工具栏添加图标,文字,提示信息 (2011-05-14 16:17:46) 转载? 标签: 分类: MFC编程学习 杂谈 OnInitDialog()中 //先导入图标文件,假设有5个工具栏按钮 m_imagelist.Create(24,24,ILC_COLOR24|ILC_MASK,1,1);//创建按图像列表 m_imagelist.Add(AfxGetApp()->LoadIcon(IDI_ICON_Find));//将图像与列表一一关联 m_...

[课程]VC对话框的工具栏添加图标
[课程]VC对话框的工具栏添加图标 VC对话框的工具栏添加图标,文字,提示信息 (2011-05-14 16:17:46) 转载? 标签: 分类: MFC编程学习 杂谈 OnInitDialog()中 //先导入图标文件,假设有5个工具栏按钮 m_imagelist.Create(24,24,ILC_COLOR24|ILC_MASK,1,1);//创建按图像列 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf m_imagelist.Add(AfxGetApp()->LoadIcon(IDI_ICON_Find));//将图像与列表一一关联 m_imagelist.Add(AfxGetApp()->LoadIcon(IDI_ICON_Look)); ...... UINT array[5]={0};//定义工具栏数组 for(int i=0;i<5;i++) { array[i]=9000+i;//为工具栏中每个按钮添加按钮索引 } m_toolbar.Create(this);//创建工具栏窗口 m_toolbar.SetButtons(array,5);//为工具栏添加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,200);//设置按钮的宽度 m_toolbar.GetToolBarCtrl().SetImageList(&m_imagelist);//关联图片到按钮上 m_toolbar.SetSizes(CSize(105,60),CSize(28,40));//设置按钮大小 m_toolbar.EnableToolTips(TRUE);//激活提示信息 2. 在C***Dlg.h //添加事件声明(最好写在AFX_MSG宏外,否则可能出现编译错误) afx_msg BOOL OnToolTipText(UINT nID, NMHDR* pNMHDR, LRESULT* pResult); 并在盖头文件中添加#include ,否则会提示AfxLoadString错误 3. 在C***Dlg.cpp //添加消息映射(最好写在AFX_MSG_MAP宏外,否则可能出现编译错误 ON_NOTIFY_EX_RANGE(TTN_NEEDTEXTW,0,0xFFFF,OnToolTipText) ON_NOTIFY_EX_RANGE(TTN_NEEDTEXTA,0,0xFFFF,OnToolTipText) 4. 在C***Dlg.cpp中添加OnToolTipText的定义 BOOL OnToolTipText(UINT nID, NMHDR* pNMHDR, LRESULT* pResult) { ASSERT(pNMHDR->code == TTN_NEEDTEXTA || pNMHDR->code == TTN_NEEDTEXTW); // if there is a top level routing frame then let it handle the message if (GetRoutingFrame() != NULL) return FALSE; // to be thorough we will need to handle UNICODE versions of the message also !! 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 is actually the HWND of the tool nID = ::GetDlgCtrlID((HWND)nID); } if (nID != 0) // will be zero on a separator { AfxLoadString(nID, szFullText); strTipText=szFullText; #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; // bring the tooltip window above other popup windows ::SetWindowPos(pNMHDR->hwndFrom, HWND_TOP, 0, 0, 0, 0, SWP_NOACTIVATE|SWP_NOSIZE|SWP_NOMOVE|SWP_NOOWNERZORDER); return TRUE; } return FALSE; } 5. 在字串表中创建相应ID的字串; 6. 编译运行,可以查看效果 VC++对话框添加工具栏 2009-09-24 20:38:57| 分类: vc++例子文章 | 标签: |举报 |字号大中小 订阅 1、添加工具栏资源ID为IDR_TOOLBAR 2、在对话框的类定义中加: CToolBar m_ToolBar; 3、在OnInitDialog中或其它合适的消息响应中加如下代码:(函数可查看MSDN) m_ToolBar.Create(this); //创建工具栏 m_ToolBar.LoadToolBar(IDR_TOOLBAR);//加载工具栏 //得出控件条大小. CRect rect; CRect rectNow; GetClientRect(rect); RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,0,reposQuer y,rectNow); //放置控件条位置 CPoint ptOffset(rectNow.left-rect.left,rectNow.top-rect.top); CRect rcChild; CWnd* pwndChild=GetWindow(GW_CHILD); while (pwndChild) { pwndChild->GetWindowRect(rcChild); ScreenToClient(rcChild); rcChild.OffsetRect(ptOffset); pwndChild->MoveWindow(rcChild,FALSE); pwndChild=pwndChild->GetNextWindow(); } //调整对话框尺寸 CRect rcWindow; GetWindowRect(rcWindow); rcWindow.right+=rect.Width()-rectNow.Width(); rcWindow.bottom+=rect.Height()-rectNow.Height(); MoveWindow(rcWindow, FALSE); //控件条定位 RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,0); //对框居中 CenterWindow(); 4、手工添加处理函数 afx_msg void OnBtnXXX();//消息响应函数声明 ON_COMMAND(ID_BTN_XXX/*工具按钮ID*/,OnBtnXXX/*函数名*/)//消息映射 void CXXXDlg::OnBtnXXX(){}//消息处理函数 这是今天遇到的问题,但程序好像不是这样做的,明天再研究看看。
本文档为【[课程]VC对话框的工具栏添加图标】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_321575
暂无简介~
格式:doc
大小:22KB
软件:Word
页数:0
分类:互联网
上传时间:2017-11-13
浏览量:45