单文档自定义工具栏

使用VS的MFC应用创建单文档应用并添加对话框菜单和工具栏 本教程是基于Visual Studio 2019的VC++大作业。 市面上大部分书本教程都使用Microsoft Visual C++工具创建,VS的教程全网少之又少。 故而本教程给初学者避雷,以单文档应用为示例,使用 Visual Studio的MFC应用 完成单文档应用的创建,并在此基础上新建对话框、菜单和工具栏等资源 基于MFC应用的Visual Studio教程一、考核题目要求二、步骤教程三、运行结果 一、考核题目要求 学习习惯问卷调查: 建立一个单文档应用项目(项目名称为学生姓名拼音首字母. 阅读详情

Mark一下

//装载工具栏上资源图片 
CImageList m_ImgList;
//创建新的工具栏
CToolBar m_newToolBar;


 

//去掉自带的工具栏  
	m_wndToolBar.ShowWindow(SW_HIDE);  
	//设置自己的工具栏  
	SetIcon(LoadIcon(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDR_MAINFRAME)),TRUE);  
	//加载资源图片  
	m_ImgList.Create(32,32,ILC_COLOR24 | ILC_MASK,1,1);  
	m_ImgList.Add(AfxGetApp()->LoadIcon(IDI_ICON3));  
	m_ImgList.Add(AfxGetApp()->LoadIcon(IDI_ICON3));  
	m_ImgList.Add(AfxGetApp()->LoadIcon(IDI_ICON3));  
	m_ImgList.Add(AfxGetApp()->LoadIcon(IDI_ICON3));  

	//创建工具栏  
	m_newToolBar.Create(this);  
	//设置按钮  
	//m_newToolBar.SetButtons(Array,4);  

	m_newToolBar.SetButtonInfo(0, IDB_MAIN_BUTTON1, TBSTYLE_BUTTON, 0);
	m_newToolBar.SetButtonInfo(1, IDB_MAIN_BUTTON2, TBSTYLE_BUTTON, 1);
	m_newToolBar.SetButtonInfo(2, IDB_MAIN_BUTTON3, TBSTYLE_BUTTON, 2);
	m_newToolBar.SetButtonInfo(3, IDB_MAIN_BUTTON4, TBSTYLE_BUTTON, 3);

	//设置按钮图标文字  
	m_newToolBar.SetButtonText(0,_T("设置端口"));  
	m_newToolBar.SetButtonText(1,_T("配置插件"));  
	m_newToolBar.SetButtonText(2,_T("日志管理"));  
	m_newToolBar.SetButtonText(3,_T("关于"));  

	//设置按钮大小  
	m_newToolBar.GetToolBarCtrl().SetButtonWidth(60,120);  
	//将按钮和资源图标相关联  
	m_newToolBar.GetToolBarCtrl().SetImageList(&m_ImgList);  
	m_newToolBar.SetSizes(CSize(70,60),CSize(32,32));  
	//激活鼠标提示功能  
	m_newToolBar.EnableToolTips(TRUE);  
	//显示工具栏  
	RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,0);  


 

CMFCToolBar去掉关闭按钮的方法 MFC单文档程序,自己建了一个MFCTOOLBAR,拖出来之后会有一个关闭按钮,很碍事,于是就想把x去掉。 百度了半天,只有那个在OnWindowPosChanged里面更改父窗口Style的办法,但只适合于CToolBar。 google了一番,终于找到了方法,CMFCToolBar继承于CBasePane,在CBasePane中有一个成员函数CanBeClosed() 。— —!看名字就明 阅读详情

相关推荐

MFC用代码创建工具栏

MFC用代码创建工具栏;

bcbobo21cn的专栏 823

mfc单文档的自定义工具栏

MFC的单文档项目有自带工具栏,同时作为开发者可以自定义想要的工具栏,下面给出笔者的一种做法供大家参考: 编辑自带工具栏的步骤分为以下几步: 第一步:进入项目资源管理器,找到Toolbar文件夹新建一个Toolbar或者直接修改自带的IDR_MAINFRAME;                 添加新的图标,在图标的属性中设置Height和Width 第二步:打开MainFrm.h,添加一...

w13922547238的博客 4511

MFC之CMFCToolbar 单文档生成多个CMFCToolbar时需要解决的问题

1. 单文档默认生成的工具栏只有一个,但很多时候我们需要添加多个工具栏,比如: m_wndMenuBar.EnableDocking(CBRS_ALIGN_ANY); m_wndFileToolBar.EnableDocking(CBRS_ALIGN_ANY); m_wndCalibrateToolBar.EnableDocking(CBRS_ALIGN_ANY); m_wndDrawToo...

Ilson_的博客 1393

单文档中将系统工具栏更换成自己定义的工具栏

一、如何去掉系统生成的工具栏 在CMainFrame类的OnCreate函数添加如下代码(在return 0之前): ...... //去掉工具栏 m_wndToolBar.ShowWindow(SW_HIDE); //去掉状态栏 //m_wndStatusBar.ShowWindow(SW_HIDE); 二、添加自己定义的工具栏 主要分为以下几个步骤: 1、创建工具栏资

xdhywj的专栏 2284

MFC界面源程序(学习分割,自定义工具栏,重绘,outlookBar)

这是个学习单文档视图分割,动态切换的好例子(思路清晰,代码简单),源文件中还提供了控件重绘、outlookBar及运用真色彩工具栏的代码。无dll,纯代码。 适合人群:c/c++/MFC中级程序员 目的:学习交流

使用 Claude Skills 构建专业级 AI Agent:技术实践指南

Claude Skills(也称)是一组基于文件系统的可重用资源包,为 Claude 提供特定领域的专业知识、标准化工作流程和最佳实践。与传统一次性 Prompt 不同,Skills 是持久化、自动触发、支持代码执行的智能模块。让 AI 真正理解并执行你的工作方式。Claude Skills 正在重新定义 AI 助手的边界——从“回答问题”升级为“执行专业工作的能力”。其可组合、可移植、高效、强大的特性,使其成为自动化重复任务、标准化工作流、提升团队效率的理想工具。未来已来。

weixin_44058951的博客 2226

MFC中单文档和多文档的工具栏停靠问题

一、MFC单文档中添加自定义工具栏 项目环境:VS2015,MFC单文档工程,项目类型Visual Studio 1.1、添加ToolBar资源 打开资源视图,添加ToolBar,命名IDR_TOOLBAR1,然后随便创建几个工具图标。 2.1、在项目中添加新增的ToolBar 打开主框架文件MainFrm.cpp,找到OnCreate函数,在系统工具栏创建代码的下面添加新工具栏的创建。 // M...

HHHUANG 1730

MPU6050芯片 寄存器详解与配置指南(详解)

分频值越小,数据刷新越快(如分频值 = 0 时,刷新率 = 8kHz/1=8kHz)。功能:配置采样频率分频系数,控制 ADC 转换速度和数据刷新率。数据刷新率 = 陀螺仪输出时钟频率 /(1 + 分频值)

m0_74696257的博客 1424

工具栏、状态栏创建

工具栏 [对话框][单/多文档] 相关类:     CToolBar   ,  CToolBarCtrl     对话框 相关函数: 创建工具栏:   Create 加载工具栏:   LoadToolBar 移动窗口:   MoveWindow 获得客服区/窗口区域:   GetClientRect / GetWindowRect 调整和重置窗

657

构建可编程记忆系统:OpenClaw-SuperMemory本地部署与智能知识管理实战

在信息过载的时代,高效的知识管理与智能检索成为技术从业者的核心需求。向量数据库与嵌入模型技术通过将文本转化为高维向量,实现了基于语义相似度的智能搜索,突破了传统关键词匹配的局限。这项技术的核心价值在于将静态存储的信息转化为可动态查询和计算的知识资产,极大地提升了信息调用的准确性和效率。其应用场景广泛,从个人笔记管理、对话历史归档到企业知识库构建都能发挥关键作用。本文聚焦于开源项目OpenClaw-SuperMemory,它正是基于这一技术栈,通过本地化部署实现了可编程记忆系统的构建。项目集成了ChromaD

weixin_42525482的博客 320

基于AutoDL复现A-LOAM

Ceres solver 是谷歌开发的一款用于非线性优化的库,在谷歌的开源激光雷达slam项目cartographer中被大量使用。在autodl上面租服务器,地区我租的重庆A区的,GPU我选择的是RTX4090,基础镜像选择的是Miniconda / conda3 / 3.8(ubuntu20.04)/11.6。在AutoDL中我使用的方式是先将该数据集先下载到自己的电脑上,然后再上传到虚拟机中。用MobaXterm解决该问题!搜到的一个解决方式:该问题属于ceres版本问题,将A-LOAM下的。

m0_61281610的博客 1943

工具栏图标替换

新建一个单文档的程序,morensheng

757

FPGA领域四大顶级会议全景解读:从架构到应用的技术风向标

本文全景解读FPGA领域四大顶级会议(FPGA、FCCM、FPL、FPT),剖析其各自定位与技术风向。FPGA会议聚焦架构与工具创新,FCCM专攻硬件加速与定制计算,FPL覆盖从理论到应用的广泛领域,FPT则重点关注亚太市场与前沿应用。跟踪这些会议是把握FPGA技术演进、寻找创新灵感和应用方案的高效途径。

weixin_29274969的博客 335

给工具栏按钮添加图标和文字

假设工具栏有两个按钮,为每个按钮添加图标和文字1.新建一个单文档程序,将准备好的图标资源(32×32)复制到res文件夹.2.在资源中打开工具栏编辑器,删除(del)原有的位图和多余的按钮(将按钮拖出工具栏即可删除),并为每个按钮修改ID(双击),比如ID_BTN1~ID_BTN2,可在Prompt中输入提示.3.右键单击资源中的Icon,导入res文件夹中准备好的图标,默认为IDI_

门外汉的专栏 5781

黑猫带你学eMMC协议第11篇:eMMC擦除详解(erase/trim/discard/sanitize/secure erase/secure trim...)

erase命令单位是擦除组,那么一个擦出组包含多个写块,不同写块有不同信息,主机擦除之前,必须进行确定好这些写块中的信息没有用了。所以通常erase用来擦除整个设备或分区。erase完成后,将erase的区域都要么是全0,要么是全1。那么到底是0还是1呢,根据不同的工艺有所不同,但是别担心,在ecsd[181]中会有说明到底是1还是0。erase命令的作用就是简单的将映射地址范围移动到未映射的地址范围。

黑猫奥利奥的博客 7797

微信小程序 - {errCode: 10008, errno: 1500104, errMsg: “writeBLECharacteristicValue:fail write characteris

微信小程序errCode: 10008, errno: 1500104, errMsg: "writeBLECharacteristicValue:fail write characteristics error. 10008, errMsg=The value's length is invalid.",uni-app微信小程序报错,uniApp小程序调用蓝牙api报错,向低功耗蓝牙设备的某个特征写入数据时错误,UniApp微信小程序蓝牙API调用报错10008解决方案,蓝牙设备进行通信时,向设备写入数据

🏆 前端领域优质创作者 4431

VC6 单文档 替换MFC默认的菜单栏和工具栏

VC6 单文档 替换MFC默认的菜单栏和工具栏. 我发现一个很简单的方法: 1.先在资源视图里面增加一个新的菜单栏.2.把IDR_MAINFRAME的那个默认的菜单栏选中,按DEL键.3.把新的菜单栏的ID改成IDR_MAINFRAME 工具栏的替换方法也是一样的. 编译运行.MFC默认的菜单栏和工具栏已经变成了你自己的菜单栏和工具栏了. 效果图:

gift925的专栏 1916

数字 IC 笔试面试必考点(1)FPGA 芯片架构

FPGA 芯片架构是非常重要的,如果你不了解 FPGA 芯片内部的详细架构,那么...

新芯设计的博客 2813

学习笔记--考勤管理软件(一)

学习MFC有一段时间了,很想通过一个小的项目类似的工程熟悉一下MFC的整个工作流程和熟悉一些基本用到的函数和需要注意的逻辑。所以心血来潮开始写一个小的考勤管理的软件,写的过程中也发现了很多需要解决的问题,为了记住这些东西,决定把整个过程给一步一步的记录下来,方便自己记忆的同时,也可以让有想自己学习做一个小的系统的同学学习一下,还可以让有不同见解的朋友做一个交流。 首先,做一个软件的话要...

aiweiga7417的博客 180

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

程序运行前退出前动画

新建单文档应用程序 运行效果 修改运行效果 MainFrm.h : CMainFrame 类的接口 public: afx_msg void OnClose(); MainFrm.cpp : CMainFrame 类的实现 int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CFrame

冰点蓝欣的专栏 733

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

MFC Web浏览器

MFC Web浏览器 1.如何创建单文档,工具栏样式为浏览器样式以及基类为CHtmlView类项目?

weixin_42191545的博客 1639

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

深入MFC中WM COMMAND命令消息的传递

深入MFC中WM COMMAND命令消息的传递

gftygff的博客 808

工具栏,状态栏(VC_MFC)

目录 工具栏 状态栏 (本章节中例子都是用 VS2005 编译调试的) 工具栏 [对话框][单/多文档] 相关类: CToolBar , CToolBarCtrl 对话框 相关函数: 创建工具栏:  Create 加载工具栏:  LoadToolBar 移动窗口:  MoveWindow 获得客服区/窗口区域:  GetCl...

diaogui7903的博客 302

2003excel职称计算机,职称计算机考试Excel2003使用技巧:设置技巧

设置技巧1. 定制菜单命令你可以根据自己的要求来定制选项菜单。首先单击“工具→自定义”命令,打开其中的“命令”选项卡(),在左侧的“类别”窗口中选择欲增删的菜单类别。如果是增加菜单命令,你只需在右侧的“命令”格内进行选择,将其拖至对应的菜单项,菜单自动打开并出现一黑线后,将其插入黑线指示的位置,在空白处单击鼠标左键即可。如果是删除菜单命令,只须打开菜单选中需要删除的命令,按下鼠标左键将它拖至图中的...

weixin_35710893的博客 269

删除MFC自建的单文档工程的菜单和工具栏

出处:http://blog.sina.com.cn/s/blog_478b133001007vev.html 1.去除菜单         在CMainFrame::PreCreateWindow(CREATESTRUCT& cs)函数中加入一句:          cs.hMenu = NULL; 2.去除工具栏          在CMainFram

自由的天空 581
上一篇: 自定义流操作符 重载wcout
下一篇: error C2146: syntax error : missing ';' before identifier 'fd'
sysprogram
博客等级 码龄17年 298粉丝 442原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值