MFC 学习 之 工具栏的添加(一)
最终实现的效果图:
步骤一:接下来在资源视图中添加一个ToolBar工具栏(具体怎么添加在这儿就不详细讲解了!)
添加后的ToolBar以及工具栏中每个按钮 所命名的ID如下:(可以自定义,只要不重名就可以,一般命名规则是见名知义)
那么在资源视图中的工具栏,我们就制作完成了!!
步骤二:以上仅仅是进行了按钮的添加,而按钮上面那些相对应的 图片还没有导入,应该将图片导入到资源视图中的Icon中,格式必须为 *.ico,并对每张ICO图片也进行ID的分配
步骤三:打开代码添加一个 InitToolBar() 函数成员
BOOL CDormDlg::InitToolBar()
{
initializeFlag = TRUE; //创建ToolBar工具条
if(!m_toolbar.CreateEx(this,TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP
| CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
!m_toolbar.LoadToolBar(IDR_TOOLBAR1))
{
TRACE0("Failed to Create Dialog ToolBar\n");
EndDialog(IDCANCEL);
}
CRect rcClientOld;
CRect rcClientNew; GetClientRect(rcClientOld);
RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,,reposQuery,rcClientNew); //创建位图 CImageList
HICON hIcon = NULL ;
img.Create(,,ILC_COLOR32 | ILC_MASK,,);//加载图片大小,图片格式,图片数量
COLORREF co = GetSysColor(COLOR_WINDOW); img.SetBkColor(co); hIcon =(HICON) ::LoadImage(::AfxGetInstanceHandle(),MAKEINTRESOURCE(IDI_STU_ADD),IMAGE_ICON,,,);//导入添加学生图片0
img.Add(hIcon); hIcon = (HICON)::LoadImage(::AfxGetInstanceHandle(),MAKEINTRESOURCE(IDI_STU_DEL),IMAGE_ICON,,,);//导入删除学生图片1
img.Add(hIcon); hIcon = (HICON)::LoadImage(::AfxGetInstanceHandle(),MAKEINTRESOURCE(IDI_STU_CHECK),IMAGE_ICON,,,);//导入查询学生图片2
img.Add(hIcon); //添加按钮信息
m_toolbar.GetToolBarCtrl().SetImageList(&img);
m_toolbar.SetButtons(NULL,); m_toolbar.SetButtonInfo(,IDC_TOOLBAR_ADDSTD,TBSTYLE_BUTTON,);
m_toolbar.SetButtonText(,_T("添加学生")); m_toolbar.SetButtonInfo(,-,TBSTYLE_SEP,-);
m_toolbar.SetButtonText(,_T("")); m_toolbar.SetButtonInfo(,IDC_TOOLBAR_DELSTD,TBSTYLE_BUTTON,);
m_toolbar.SetButtonText(,_T("删除学生")); m_toolbar.SetButtonInfo(,-,TBSTYLE_SEP,-);
m_toolbar.SetButtonText(,_T("")); m_toolbar.SetButtonInfo(,IDC_TOOLBAR_CHECKSTD,TBSTYLE_BUTTON,);
m_toolbar.SetButtonText(,_T("查询学生")); m_toolbar.SetButtonInfo(,-,TBSTYLE_SEP,-);
m_toolbar.SetButtonText(,_T("")); //设置工具栏按钮大小
CRect rectToolBar;
m_toolbar.GetItemRect(,&rectToolBar);
m_toolbar.SetSizes(rectToolBar.Size(),CSize(,));
m_toolbar.SetSizes(CSize(,),CSize(,)); m_toolbar.EnableToolTips(TRUE);
// m_toolbar.ShowWindow(SW_SHOW);
return TRUE;
}
步骤四:然后将InitToolBar()函数添加到InitDialog()中!
以上就是所有的ToolBar工具栏的添加过程!
我们在对InitDialog()进行一个详细的剖析:后续
MFC 学习 之 工具栏的添加(一)的更多相关文章
- MFC 学习 之 状态栏的添加
1.首先声明一个 CStatusBar m_bar;//声明对象2.然后打开视图资源 String Table中添加两个字段值 3.创建了两个字段值以后,在OnintDialog() 所在的 .cp ...
- MFC 学习 之 菜单栏的添加
运行环境:vc++ 6.0 win81.通过资源 添加一组 菜单栏 如下: 2.在OnInitDialog()中添加如下代码: // Add "About..." men ...
- MFC 学习之 鼠标移动到Toolbar按钮上显示提示信息(tooltip),状态栏也随之改变
1.在ResourceView里加入Toolbar资源,命名IDR_TOOLBAR1 2.在主程序的.h文件中加入变量: CToolBar m_toolbar;CImageList ...
- MFC 学习笔记
MFC 学习笔记 一.MFC编程基础: 概述: 常用头文件: MFC控制台程序: MFC库程序: 规则库可以被各种程序所调用,扩展库只能被MFC程序调用. MFC窗口程序: 示例: MFC库中类的简介 ...
- VC MFC在CMFCToolBar工具栏中加入组合框
如何在CMFCToolBar工具栏中加入组合框等控件,且先看在线MSDN上怎么说的: 要增加一个组合框,需要完成以下步骤: 1.在工具栏资源中,增加一个对应ID资源号的按钮. 2.在主框架(mainf ...
- MFC如何在树形图边上添加动态小地图
MFC如何在树形图边上添加动态小地图 https://www.jianshu.com/p/7b1d828bf5db (简书无法识别缩进的...早知道先在博客园发了) (转载请注明出处) 作者:梦镜谷雨 ...
- 学习Angularjs向数据库添加数据
今天学习angularjs向数据库添加数据. 学习此篇,得从以往几篇开始,因为那还有创建数据表等演示. 现在来创建一个添加的存储过程: SET ANSI_NULLS ON GO SET QUOTED_ ...
- MFC学习笔记1---准备工作
什么是MFC MFC,全称Microsoft Foundation Classes,微软基础类库,顾名思义,是微软的攻城狮们将一些常用的基础的Windows API 函数用C++的形式封装成类,简化程 ...
- 通过编写串口助手工具学习MFC过程——(六)添加Edit编辑框控件
通过编写串口助手工具学习MFC过程 因为以前也做过几次MFC的编程,每次都是项目完成时,MFC基本操作清楚了,但是过好长时间不再接触MFC的项目,再次做MFC的项目时,又要从头开始熟悉.这次通过做一个 ...
随机推荐
- Javascript的匿名函数
一.什么是匿名函数?在Javascript定义一个函数一般有如下三种方式:函数关键字(function)语句:function fnMethodName(x){alert(x);}函数字面量(Func ...
- tomcat Manger App
转发链接,嘿嘿http://simeon.blog.51cto.com/18680/58877
- markdown插件学习
1.Markdown的定义 Markdown是一种可以使用普通文本编辑器编写的标记语言,通过简单的标记语法,它可以使普通文本内容具有一定的格式.它用简洁的语法代替排版,而不像一般我们用的字处理软件Wo ...
- Hanoi塔问题
说明:河内之塔(Towers of Hanoi)是法国人M.Claus(Lucas)于1883年从泰国带至法国的,河内为越战时北越的首都,即现在的胡志明市:1883年法国数学家 Edouard Luc ...
- winform 防止多開
場景: 當我們的電腦可以使用多用戶同時登錄時候,每個使用者只允許執行一次exe程式. 例如:一台公用電腦,有多個用戶A.B. 當用戶A進入系統第一次運行C:\XX.exe,OK.第二次運行XX.exe ...
- Java并发编程-关卡
CyclicBarrier 直译过来叫循环栅栏,它主要的方法就是一个:await().await() 方法没被调用一次,计数便会减少1,并阻塞住当前线程.当计数减至0时,阻塞解除,所有在此 Cycli ...
- js代码大全
超级实用且不花哨的js代码大全 事件源对象event.srcElement.tagNameevent.srcElement.type 捕获释放event.srcElement.setCapture() ...
- nagios监控远程主机端口
1 被监控主机上的操作 修改nrpe插件内容: 在其中增加的内容如下: 表示的含义为监控主机的端口631和661,这个主要是监控命令 重启xinetd服务: 2 监控主机上的操作 查看监控命令配置文件 ...
- Mapreduce读取Hbase表,写数据到一个Hbase表中
public class LabelJob { public static void main(String[] args) throws Exception { Job job = Job.getI ...
- 【整理】JavaEE基本框架(Struts2+Spring+MyBatis三层,Struts MVC)之间的关系
#[整理]JavaEE基本框架(Struts2+Spring+MyBatis三层,Struts MVC)之间的关系 ![关系图解](http://images.cnitblog.com/blog/84 ...