vc入门宝典七(工具栏)

发布时间:2026/10/28 18:18:53

vc入门宝典七(工具栏) 工具栏主要内容1 概要。2 常用函数3 实例。4 动态建立工具条5 在工具栏中嵌控件6 用对话框加位图按钮作工具条我们可以在资源编辑器的ToolBar上单击右键选择Insert ToolBar,选中一个工具栏后在右边双击它的一项就可以编辑了。我们可以用图形工具条及颜色盒画它的外表它的属性有ID长宽及鼠标指向它时的说明。一般CToolBar定义在CMainFrame中其实现在CMainFrame的OnCreate函数中完成。if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP| CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||!m_wndToolBar.LoadToolBar(IDR_MAINFRAME)){TRACE0(Failed to create toolbar/n);return -1; // fail to create}m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);EnableDocking(CBRS_ALIGN_ANY);DockControlBar(m_wndToolBar);Bool Create(CWnd *pParentWnd,DWORD dwStu;e WS_CHILD | WS_VISIBLE |CBRS_TOP,UINT nID AFX_IDW_TOOLBAR);pParentWnd指定所属窗口。dwStyle 指定工具栏风格CBRS_TOP 允许工具栏位于框架窗口顶端。CBRS_BOTTOM 允许工具栏位于框架窗口底端CBRS_NOALIGN 父窗口改变尺寸后工具栏位置不变CBRS_TOOLTIPS 工具栏显示提示条CBRS_SIZE_DYNAMIC 工具幸是动态的CBRS_SIZE_FIXED 工具栏是固定的CBRS_FLOATING 工具栏是浮动的CBRS_FLYBY 当鼠标从命令按钮上掠过时显示提示信息CBRS_HIDE_INPLACE 工具栏对用户不可见SetButtonStyle()函数用来设定命令按钮的风格或间隔区,或设为一组,按钮的风格决定了按钮的外貌和对用户的反应方式.Void SetButtonStyle(int nIndex,UINT nStyle);nIndex 指定工具栏中按钮或间隔的索引号.nStyle TBBS_BUTTON 标准按钮,此为默认值TBBS_SEPARATOR 间隔区TBBS_CHECKBOX 自动确认区TBBS_GROUP 标记为一组按钮的开始TBBS_CHECKGROUP 标记为一组确认框的开始ControlBar类的EnableDocking函数和CFrameWnd类的DockControlBar函数配合,设定工具栏的可活动性.Void EanbleDocking(DWORD dwStyle)CBRS_ALIGN_TOP 允许工具栏位于客户区上侧CBRS_ALIGN_BOTTOM 允许工具栏位于客房区下侧CBRS_ALIGN_LEFT 允许工具栏位于客户区左侧CBRS_ALIGN_RIGHT 允许工具栏位于客户区右侧CBRS_ALIGN_ANY 允许工具栏位于客户区的任意位置CBRS_FLOAT_MULTI 允许多个控制栏在一个迷你框架窗口中浮动Void DockControlBar(….)pBar 要浮动的控制栏指针.nDockBarID指定允许浮动的位置,或为0则不允许浮动,可以由下列值组合而成:AFX_IDW_DOCKBAR_TOP 控制栏置于框架窗口上侧;AFX_IDW_DOCKBAR_BOTTOM 控制栏置于框架窗口下侧AFX_IDW_DOCKBAR_LEFT 控制栏置于框架窗口左侧AFX_IDW_DOCKBAR_RIGHT 控制栏置于框架窗口右侧改变工具栏的命令按钮风格工具栏的按钮一般默认为命令按钮当放开标鼠标命令按钮就”弹出来”,如果我们希望命令按钮能留在被按上的状态就可以把命令按钮的风格设为确认框。在ON_UPDATE_COMMAND_UI消息处理函数中使用SetCheck()成员函数和SetRadio()成员函数改变按钮状态。SetCheck()的参数0表示删除状态1表示确认状态2表示不确认状态SetRadio()的参数0表示删除状态非0表示确认状态。我们用应用程序向导建立一个单文档程序在工具栏中添加按钮ID设定为ID_TIME.在CMainFrame类添加一个布尔数据类型m_bTime,初始值为false.Ctrlw添加ID_TIME的ON_COMMANDT和ON_UPDATE_COMMAND_U消息响应函数。void CMainFrame::OnShowTime(){m_bTime ! m_bTime;}void CMainFrame::OnUpdateShowTime(CCmdUI * pCmdUI){pCmdUI -SetCheck(m_bTime);}注意如果有一个同ID的菜单它会自动根据按钮的情况打上钩钩。事实上我们可以不用toolbar资源建立一个工具条。代码如下UINT nID[]{ID_FILE_NEW,ID_FILE_OPEN,ID_TIME};m_wndToolBar.Create(this);m_wndToolBar.LoadBitmap(IDB_BITMAP1);m_wndToolBar.SetButtons(nID,sizeof(nID)/sizeof(UINT));其中位图的大小要合适否则会影响美观最后一行让几个ID与工具栏的按钮和相关。如果想设置每个按钮的风格可以将最后一行后面加m_wndToolBar.SetButtonStyle(1,TBBS_SEPARATOR);也可m_wndToolBar.Create(this);m_wndToolBar.LoadBitmap(IDB_BITMAP1);m_wndToolBar.SetButtons(NULL,3);m_wndToolBar.SetButtonInfo(0,ID_FILE_NEW,TBBS_BUTTON,0);m_wndToolBar.SetButtonInfo(1,ID_FILE_OPEN,TBBS_BUTTON,2);在工具栏中嵌入控件如编辑框1 定义一个编辑控件对象不能是局部变量否则会被释放掉。2 调用Create唯一要注意的是位置要在工具条的地盘上。CRect rect;m_wndToolBar.GetItemRect(1,rect);edit.Create(WS_CHILD|WS_VISIBLE,rect,m_wndToolBar,ID_EDIT);用对话框加位图按钮作工具栏。插入一个对话框Styles的style设为child,border设为none.在CMainFrame中m_wndToolBar的改成CDialogBar并加一个CBitmapButton bb;把建立工具条的那一句改为m_wndToolBar.Create(this,IDD_DIALOG1,WS_CHILD|WS_VISIBLE|CBRS_TOP,AFX_IDW_STATUS_BAR);最后一上ID 同自己随便确定。CtrlF5,一个极不美观的工具条就出来了。对按钮进行整理它们的处理函数仍然上Ctrlw加。将按钮Styles的Owner drawer和bitmap钩上。在刚才的地方加一句。bb.AutoLoad(IDC_BUTTON1,m_wndToolBar);注意你需要加三幅位图一幅也可以。如你的按钮的名字为X,刚三幅位图的名字分别为”XUP”,”XDOWN”,”XFOCUS”,简写为”XU”,”XD”,”XF”.计算几何为骨排样优化为魂作品一亲士套料工具箱https://qinshi.blog.csdn.net/article/details/167222655作品二亲士CAD工具箱https://qinshi.blog.csdn.net//article/details/156510081经典文章推荐二维排样https://qinshi.blog.csdn.net/article/details/164169163万物皆数学https://qinshi.blog.csdn.net/article/details/143057305查阅鄙人的博文请点击博文下载学院导航https://qinshi.blog.csdn.net/article/details/163717324活到老学到老。明朝中后期大约50%的进士能当上堂官(副部及更高)能当上堂官的举人只有十余人。子墨子言之事无终始无务多业。也就是我们常说的专业的人做专业的事。
延伸阅读

更多相关文章

2026/10/28 18:18:53

AVID Media Composer介绍

AVID Media Composer 一、基础介绍1. 软件功能介绍Avid是目前全球最大的专业视音频产品及解决方案提供商,其产品覆盖视音频的所有环节。AVID Media Composer是其主要的非线性编辑软件,全球著名的电视机构均采用Avid的相关产品。2. AVID 剪辑流程收集磁带…

2026/10/28 18:18:53

赛灵思CEO警示:AI芯片创业勿扎堆,FPGA差异化或是出路

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/28 18:13:52

车载智能语音NLP解析:从语义理解到大模型上车的技术演进

车载智能语音这个系列写到这里,刚好到了一个收尾的位置。前两章把硬件层面的麦克风阵列、信号处理,以及ASR声学模型与语言模型讲了一遍,内容偏“感知侧”。到了终篇,视角自然要转向“认知侧”——也就是NLP智能语音交互&#xff0…

2026/10/28 19:29:07

智能体编程:2026年技术趋势与实战指南

1. 智能体编程的现状与2026趋势概览过去三年间,智能体编程已经从实验室概念发展为改变软件开发范式的关键技术。根据最新行业调研,2023年采用智能体架构的企业项目数量同比增长470%,GitHub上相关开源项目星标总数突破50万。这种爆发式增长背后…

2026/10/28 19:29:07

AI提示词入门:四要素模板与写作助理实战

简介:《AI提示词大全》基础版.pdf 是一份面向AIGC初学者与日常办公人群的提示词参考资料,聚焦如何用更清晰的指令提升大语言模型的输出质量与交互效率。文档围绕写作助理、提示词修改器、提示词生成器、英语翻译或修改、论文式回答、语音输入优化等场景展…

2026/10/28 19:29:07

计算机发展史:从机械计算到云计算的演进

1. 机械计算的黎明:巴贝奇与差分机1801年,法国纺织工人约瑟夫玛丽雅卡尔发明了用打孔卡片控制的织布机,这种二进制控制理念为后来的计算机发展埋下了伏笔。但真正将机械计算推向理论高峰的,是英国数学家查尔斯巴贝奇。巴贝奇在182…

2026/10/28 19:29:07

PP-OCRv5与OpenVINO模型转换部署实战指南

1. PP-OCRv5与OpenVINO技术背景解析PP-OCRv5是PaddlePaddle团队推出的最新OCR识别系统,其server版本针对服务端场景进行了专项优化。相比前代版本,v5在识别精度和推理速度上都有显著提升,特别是在处理复杂版面和低质量图像时表现突出。而Open…

2026/10/28 19:29:07

Linux PATH环境变量攻击与权限提升防御

1. Linux权限提升中的PATH环境变量攻击解析在Linux系统安全领域,PATH环境变量滥用导致的权限提升(Privilege Escalation)是最经典的攻击手法之一。这种攻击利用了Linux系统中环境变量和SUID(Set User ID)机制的特性组合…

2026/10/28 19:24:07

SPICE网表语法避坑指南:从元件命名到仿真调试

简介:这份PPT面向电子工程、集成电路设计方向的学生与工程师,系统梳理SPICE电路仿真语言的语法规则,帮助读者看懂并独立编写规范的电路网表。内容覆盖一般语法规定、信号源、无源元件、点命令与半导体器件等模块,具体讲解大小写与…

2026/10/28 14:42:12

全国计算机二级C语言真题PDF高效刷题指南

简介:这份PDF是全国计算机二级C语言考试的试题与答案解析,专为备考二级C语言的考生准备。内容涵盖C语言特点与设计理念、程序基本组成单位、main函数执行流程、函数嵌套调用规则、标识符命名规范、整型实型字符型数据类型、八进制十六进制数合法形式、运…

2026/10/28 15:28:56

requests+BeautifulSoup:爬虫抓取h1标题的入门实战指南

简介:一份以实战为导向的Python爬虫入门资源,面向具备基本编程基础、希望快速掌握网络数据抓取的初学者,可解决从零编写简单爬虫的常见困惑。实例以requests库发送HTTP请求、BeautifulSoup解析HTML文档,完整演示从网页中提取 标题…

2026/10/28 3:32:29

递推最小二乘参数辨识MATLAB编程:二阶系统与渐消记忆实现

简介:这是一篇面向控制系统、信号处理与机器学习等领域学习者的最小二乘参数辨识程序说明文档。资源共包含一个docx格式文档,压缩包大小七十八KB,内容围绕递推最小二乘算法和渐消记忆最小二乘算法展开:先构造一个极点位于单位圆内…

2026/10/28 0:02:13

Python股票自动交易系统源码解析:从行情获取到风控的完整链路

简介:这份资源是面向高校计算机、金融相关专业毕业设计场景的完整项目源码包,主题为基于Python的股票自动交易系统,适合需要完成毕设选题、课程设计或自学金融量化交易开发的学生与开发者参考。压缩包共收录687个文件,整体约14.93…

2026/10/28 0:02:13

视酷酷信IM源码部署指南:Java 17+MySQL 8.0.33实战配置

简介:这是一套2024年亲测可部署的视酷酷信IM即时通讯系统源码,面向具备Java、OC、C#及Vue开发能力的技术人员,解决私有化即时通讯平台快速搭建与二次定制需求,尤其适用于需集成商城、保障数据主权的中小型企业或独立开发者。资源共…

2026/10/28 0:02:13

Python爬取百度迁徙数据:接口解析、批量采集与避坑指南

简介:这份资源是一个用Python爬取百度迁徙数据的脚本压缩包,面向具备Python基础、希望入门网络爬虫与数据解析的开发者,解决按日期获取全国热门城市人口迁徙数据的问题。包内共1个文件,为单个py脚本,压缩包约1KB&#…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑