00. 目录

文章目录

  • 00. 目录
  • 01. 案例概述
  • 02. 开发环境
  • 03. 关键技术
  • 04. 程序设计
  • 05. 秘笈心法
  • 06. 源码下载
  • 07. 附录

01. 案例概述

本实例实现了工具栏上两个按钮互换位置的功能。运行程序如下图所示选择菜单“查看/改变按钮位置”,程序会将“新建”按钮和“保存”按钮进行位置调换,效果如下图所示。

改变之前

改变之后

02. 开发环境

系统环境:Windows 10

开发环境:Visual Studio 2019

03. 关键技术

本实例通过CToolBar 类的SetButtonInfo方法实现,SetButtonInfo方法用来设置工具栏按钮的相关信息,语法如下:

void SetButtonInfo( int nIndex, UINT nID, UINT nStyle, int iImage );
参数说明:nIndex 工具栏上按钮的位置nID 工具栏按钮在工程中的资源ID值nStyle 工具栏按钮的风格iImage 工具栏按钮的图片索引值

04. 程序设计

(1)新建基于单文档视图结构的应用程序。

(2)修改Menu资源IDR_MAINFRAME,在菜单“视图”下新建子菜单,设置ID属性为ID_CHANGE,设置Caption属性为“改变按钮位置”。

(3)在改变按钮位置菜单中添加按键事件处理程序,代码如下:

BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)ON_WM_CREATE()ON_COMMAND(ID_Change, &CMainFrame::OnChange)
END_MESSAGE_MAP()void CMainFrame::OnChange()
{// TODO: 在此添加命令处理程序代码UINT newId = 0;UINT oldId = 0;//获取IDnewId = m_wndToolBar.GetItemID(0);oldId = m_wndToolBar.GetItemID(1);m_wndToolBar.SetButtonInfo(0, oldId, 0, 1);m_wndToolBar.SetButtonInfo(1, newId, 0, 0);//重新绘制工具栏//m_wndToolBar.Invalidate();
}

05. 秘笈心法

改变工具栏按钮的好处

通过改变工具按钮的位置,来更加方便的进行操作,使最常用的按钮始终保持在最前面,还可以通过更改按钮位置来适应个人的喜好。

06. 源码下载

下载:【MFC】可调整按钮位置的工具栏.rar

07. 附录

参考: 《Visual C++从入门到精通(项目案例版)》

【MFC】可调整按钮位置的工具栏相关推荐

  1. 【MFC】固定按钮工具栏

    00. 目录 文章目录 00. 目录 01. 案例概述 02. 开发环境 03. 关键技术 04. 程序设计 05. 秘笈心法 06. 源码下载 07. 附录 01. 案例概述 通过MFC向导创建的应 ...

  2. DevComponents.DotNetBar之SuperTabControl动态调整TABS页的位置,以动态调整按钮ButtonItem

    本文是针对上一篇文章内容的补充,根据tabs页的实际宽度判断新增按钮位置是否调整,以适应展示的需要(原来问题:如果页数过多,最后个新增按钮就无法显示出来的问题,目前网上也没有相关介绍)这里分享一下过程 ...

  3. python如何调整按钮的位置_Python tkinter布局与按钮间距设置方式

    Python tkinter布局与按钮间距设置方式 新建label与button,并设置位置(grid) import tkinter as tk root = tk.Tk() label = tk. ...

  4. swiper切换按钮位置改变_swiper插件自定义切换箭头按钮

    不知道大家在使用swiper时有没有遇到这样一种需求,swiper插件自定义切换箭头按钮,话不多说,直接上gif. 也就是需要把左右切换的箭头移到容器的外面,自定义箭头的样式. 给swiper容器再加 ...

  5. 【MFC】具有提示功能的工具栏

    00. 目录 文章目录 00. 目录 01. 案例概述 02. 开发环境 03. 关键技术 04. 程序设计 05. 秘笈心法 06. 源码下载 07. 附录 01. 案例概述 在文档\视图结构的应用 ...

  6. 【MFC】定义XP风格的工具栏

    00. 目录 文章目录 00. 目录 01. 案例概述 02. 开发环境 03. 关键技术 04. 程序设计 05. 秘笈心法 06. 源码下载 07. 附录 01. 案例概述 网上的许多软件都具有漂 ...

  7. WPS简单五步操作修改图形并调整图形位置大小和旋转角度

    在为大家介绍使用WPS如何操作修改图形之前,先了解下几个与之相关的问题: 问:WPS画好图怎么组合? 形状组合,可以使用快捷键,按SHIFT键,单击多个图形对象(或者使用选择窗格选择要组合的形状). ...

  8. java按钮位置_java窗口按钮位置设置

    java窗口按钮位置设置 代码如下: package Day08; import java.awt.BorderLayout; import javax.swing.JButton; import j ...

  9. Matlab调整子图位置及大小(祛白边)+调整画布大小+添加总标题

    子图显示问题: 不进行任何调整,默认画出的图为正方形,当需要画三个子图横排摆放时,效果如下: load diagblock_noise.matsubplot(1,3,1); pcolor(X4);ax ...

最新文章

  1. 怎么把线稿提取出来_抠线稿,三种提取漫画线稿的方式
  2. OKR案例分析,哪种类型的企业适合OKR?
  3. 操作和维护经常使用的命令
  4. python爬虫案例-陶瓷公司数据爬取
  5. 递归函数练习——累乘
  6. activity 生命周期_如何理解安卓activity的生命周期(on-create篇)?
  7. shell 杂记一(笨鸟)
  8. c语言程序 强制关机程序,怎样用C语言编写关机程序
  9. java数据库实体层封装_Java通过JDBC封装通用DAO层
  10. Transformers中的Beam Search高效实现
  11. Guitar Pro8(简称GTP8)打谱软件乐器乐谱的编排制作
  12. yolo算法部分简单理解
  13. 计算机网络工程毕业论文范文大全,网络工程专业毕业设计论文范文
  14. Word 2016 撰写论文(6): 取消/撤销 自动编号
  15. java 生成拼音_java工具-常用汉语转拼音库Pinyin4j 、tinypinyin、JPinyin
  16. SpringBoot + Spring Cloud +Vue 管理系统前端搭建(二、visual studio code开发前端项目
  17. JPA与Hibernate的区别
  18. fNIRS 公开数据集整理
  19. 专利代理机构代理专利流程
  20. 2D和3D的对比,不用犹豫,三维设计是行业未来必然趋势!

热门文章

  1. windows server 注意windows的temp目录
  2. activiti入门2流程引擎API和服务基础设施
  3. iis vue history 配置_Vue实战——vueRouter路由的添加与配置
  4. 企业级服务器固态硬盘,用户如何选择企业级SSD?_Intel服务器CPU_企业存储技术与评测-中关村在线...
  5. python 计时_python怎么实现计时
  6. Java黑皮书课后题第2章:*2.8(当前时间)程序清单2-7给出了显示当前格林尼治时间的程序。修改这个程序,提示用户输入相对于GMT的时区偏移量,显示在这个特定时区的时间
  7. python服务器查看文件更改记录,Python记录到同一文件,不同用户
  8. 华南理工大学和浙大计算机学院,浙江大学和华南理工大学的办学实力比较
  9. OpenCV计算机视觉实战(Python版)资源
  10. 每天一个linux命令-用户之间切换