用VC制作非常酷的工具条

VC MFC工具栏(CToolBar)控件 一个不具有这个状态的按钮是不接收用户输入的,并且变灰。上面的TBBUTON结构里有一个成员idCommand,这个成员跟菜单项的ID值一样,用于标识工具栏按钮项,也就是说idCommand是工具栏项ID号,就是最前面设置工具栏资源时,选择一个按钮,然后按回车,弹出一个对话框,里面有一个ID项,跟这个是一样的。这个函数的第二个参数dwStyle是按钮控件的样式,也就是在可视化添加按钮控件时,右击按钮控件,选择属性,之后会弹出一个对话框,这个对话框有一个样式的选项,该参数即对应这个样式。//激活信息提示功能。 阅读详情
http://www.rosipay.com/4/2468.html用VC制作非常酷的工具条
自微软推出Windows 95后,一大批全新的控件使我们的应用程序
更加美观,使用也更加方 便。其中一个显著的变化就是工具条不再是一
个突出的3D小方框,而是变成了平面的状态,但 是只要把鼠标移动到上面,
它就会自动地浮出来,大大方便了用户。
笔者经过一段时间摸索,终于找到了制作这种工具条的方法。原来
Windows 95封装了许 多常用的控件,大都被放在Comctrl32.dll中,其中
Toolbar控件是用于制作工具条的。下面 简要介绍一下如何在VC5.0中添
加一个Toolbar。

众所周知,所有的控件都是某一类型的窗口,所以制作Toolbar也要从制作窗
口开始。由 于MFC的Toolbar类并不支持新的功能,所以我们只好用SDK方法,
通过API调用来完成整个过程 ,该过程与制作一个传统的工具条类似。

Toolbar是属于comctrl32.dll的扩展功能,所以要先调用InitCommonControlsEx()的
函 数。该函数有一个重要的参数决定了对Toolbar的支持,它的主要作用是注册
Toolbar窗口,以 便在以后的程序中制作这种窗口,而普通的工具条则要调用
InitCommandControls()。需要注 意的是这两个函数的写法。

INITCOMMONCONTROLSEX icex;

DWORD dwStyle;

icex.dwSize = sizeof(INITCOMMONCONTROLSEX);

//注意下面这两个参数决定了是否注册Toolbar

icex.dwICC=ICC_COOL_CLASSES|ICC_BAR_ CLASSES;

InitCommonControlsEx(&icex);

然后就可以调用CreateWindowEx这个函数来建立Toolbar窗口:

HWND hwndTB = CreateWindowEx(

WS_EX_TOOLWINDOW, //扩展工具条风格

TOOLBARCLASSNAME, //Toolbar类名

NULL,

WS_CHILD|WS_VISIBLE|TBSTYLE_FLAT,

//窗口风格

0,0,0,0, //大小

AfxGetApp()->GetMainWnd(), //父窗口名

NULL,

AfxGetInstanceHandle(), //实例

NULL);

判断一下窗口句柄,如果不为空,就表示窗口建立成功。此时的Toolbar不过
是一个空空 的窗口,我们可以根据需要向里面添加按钮。向Toolbar中添加
按钮是通过向它发送消息来 实现的,以下过程与制作传统的工具条基本一致。
首先,建立一个ImageList控件,然后通过定 义按钮的数据结构来确定每个按钮的类型。

// 建立一个Imagelist 控件,

HWND himl;

//MYICON_CX,MYICON_CY是每个按钮的大小

himl= ImageList_Create(MYICON_CX,MYICON_CY,ILC_COLOR4,0,4);

//加入事先作好的工具条位图IDB_BITMAP2

ImageList_Add( himl,

LoadBitmap(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDB_BITMAP2)),NULL);

//通过消息把位图加入到Toolbar中

SendMessage(hwndTB, TB_SETIMAGELIST, 0, (LPARAM)himl);

下面加入5个普通的按钮:

TBBUTTON tbArray[5]; //按钮的数据结构

for(i=0;i<5;i++){

tbArray[i].iBitmap = i; //第i个位图

tbArray[i].idCommand = IDM_BUTTONSTART+i;

//命令ID

tbArray[i].fsState = TBSTATE_ENABLED;

tbArray[i].fsStyle = TBSTYLE_BUTTON;

//按钮风格

tbArray[i].dwData = 0;

tbArray[i].iString = i; //显示的字符串

}

//设置按钮结构的大小

::SendMessage(hwndTB,TB_BUTTONSTRUCTSIZE, sizeof(TBBUTTON), 0);

//添加按钮到Toolbar中

::SendMessage(hwndTB,TB_ADDBUTTONS,(UINT)5, (LPARAM)tbArray);

至此,一个很酷的工具条基本上制作完成,最后再调用函数ShowWindow()即可:

ShowWindow(hwndTB, SW_SHOWMAXIMIZED);

当点击按钮时,Toolbar就把消息传送到父窗口中,由父窗口响应消息。Toolbar中
按钮的 ID包含在消息函数的wParam参数中,可以设置它来调度不同的模块。这时
可以重载父窗口的O nCommand()函数,根据wParam参数判断点击了哪个按钮。假定
父窗口是主窗口框架,代码如下:

BOOL CMainFrame::OnCommand(WPARAM wParam,LPARAM lParam)

{

switch(wParam){

case IDM_BUTTONSTART+0:

AfxMessageBox(“你点中了第一个按钮!!", MB_ICONINFORMATION);

break;

case IDM_BUTTONSTART+1:

AfxMessageBox(“你点中了第二个按钮!!",MB_ICONINFORMATION);

break;

case IDM_BUTTONSTART+2:

AfxMessageBox(“你点中了第三个按钮!!", MB_ICONINFORMATION);

break;

}

return CMainFrame::OnCommand(wParam,lParam); 
 
在VC6中打造真彩工具条与自绘菜单:完整教程 本文还有配套的精品资源,点击获取 简介:在Windows编程中,拥有吸引人的用户界面对于应用的成功至关重要。本教程详细介绍了如何在Visual C++ 6.0环境下创建真彩工具条和自绘菜单,以摆脱系统默认的灰度效果,提供色彩丰富的界面体验。通过继承和重写MFC类库中的特定方法,开发者可以实现自定义的工具条和菜单绘制逻辑,包括按钮、分隔线、字体和颜色等。同时,教程中还会涉及到... 阅读详情

相关推荐

VC工具栏图标制作工具

VC、MFC制作漂亮的工具栏图标,使用VC界面更漂亮、美观

VC++打造漂亮的工具条

 将要达到的效果如图:1、真彩色按钮2、按钮旁边加下拉箭头  下面开始:首先由visual toolbar(实用的小工具,网上由破解版)制作自己的toolbar,很方便,自动生成normal、hot和disable状态的toolbar。将制作好的Toolbar放到res目录里面,然后引入的工程(本例建立的工程名为test,加入的toolbar BMPde的ID为IDB_TEST_H

c0ffee1982的专栏 2989

VC源码-漂亮的菜单和工具条,可以加图标、彩条、支持Office风格。

VC源码-漂亮的菜单和工具条,可以加图标、彩条、支持Office风格。

2023最新版kali安装教程

2023最新版kali安装教程 打开kali官网(https://www.kali.org/),下载kali镜像

qq_46346209的博客 2万+

OLLAMA_HOST环境变量设置全攻略:从127.0.0.1到局域网共享的完整配置

本文详细解析了OLLAMA_HOST环境变量的核心作用与配置方法,指导用户如何将Ollama服务从仅限本机访问(127.0.0.1)扩展到局域网共享。文章涵盖了macOS、Linux、Windows三大平台的实战配置步骤,并提供了安全加固、性能优化及常见故障排查方案,是解决多设备协作访问本地AI模型的完整指南。

weixin_28455801的博客 1898

VC 中一些控件的使用方法(TabControl, 工具栏)

1 VC中TabControl控件使用方法 (1) 添加Tab Control控件并在Property属性中设置ID为IDC_TAB,添加变量m_tabctrl,类型为CTabCtrl。 (2) 在对话框的初始化函数OnInitDialog里面添加如下代码: m_tabctrl.InsertItem(0, "memo0");//添加参数一选项卡   ...

weixin_30566063的博客 308

COMSOL实现裂缝性储层油水两相流模拟的关键技术

多孔介质中的流体流动模拟是油气藏开发的核心技术,其基本原理基于达西定律和质量守恒方程。在裂缝性储层中,离散裂缝网络与基质系统的耦合流动带来了特殊的数值挑战。通过COMSOL Multiphysics平台实现的多物理场耦合技术,可以精确模拟油水两相在复杂裂缝系统中的渗流行为。该技术采用Level Set方法表征裂缝几何形态,结合自适应网格生成技术解决狭窄裂缝的网格剖分难题,并创新性地引入Bang-Larsen毛管压力滞后模型,显著提高了采收率预测精度。这些方法在致密油藏开发、水驱优化等工程实践中具有重要应用价

weixin_34005090的博客 229

VC制作类似于IE4的酷工具条

钟健松(jonson@public.cs.hn.cn http://jonson.126.com)长沙市电信局计算机中心 410007 用VC制作工具条的方法很多,本文提供一种制作类似于IE4.0的工具条。能实现鼠标移上图标时,图标变为彩色,在工具条的位置,能停摆几种工具条。具体原理解释见步骤过程。步骤如下:1.运行AppWizard,选择Single Docume...

weixin_30750335的博客 78

Multisim 14.0元件库下载权威指南:官方与社区资源

详解Multisim元件库下载的官方途径与可靠社区资源,帮助用户快速获取Multisim 14.0所需元件模型,提升电路仿真效率。

weixin_32925455的博客 749

第八章 GPU Scheduler 分析:8.3 drm_sched_entity — 调度实体

本文介绍了DRM GPU调度器中的drm_sched_entity结构,它作为用户提交命令进入调度器的提交通道,解决了归属、排序和公平性问题。文章首先分析了命令提交的归属需求,然后详细阐述了entity的核心模型,包括其职责、进程映射关系和核心字段。接着说明了用户态提交进入内核后的关键节点路径,以及entity内部的FIFO语义和激活机制。entity通过组织同一context的命令提交包为FIFO队列,使调度器能够在多个entity之间进行优先级和公平性调度,同时保证同一提交通道的顺序执行。

图形/计算GPU的驱动与虚拟化技术分享园地 655

MFC 控制工具条的停靠位置

<br />在VC中开发大型应用程序时,工具条通常是程序中必不可少的重要功能因素,其中工具条在整个窗口中的停靠位置尤其关键,它直接影响到程序界面的外观形象。下面针对笔者实际开发中各类工具条停靠位置的控制过程,详细阐述其实现技巧。 <br /><br />  一、标准工具条停靠位置的控制 <br /><br />  VC5 应用程序向导生成的框架代码中,都具有普通工具条的控制方法。正常情况下工具条类CToolBar是控制条类CControlBar 的派生类,其显示的初始停靠位置是通过调用继承的函数CContr

清蒸熊猫 5362

claude-hub:GitHub上的AI开发助手,让Claude自动帮你写代码、审代码、合代码

代码不再是人写的,而是人引导 AI 写的。在这个时代,GitHub 不再只是一个代码托管平台,而是 AI 开发代理的工作台。每一个 issue、每一条 PR,都可能是一次与 AI 合作的机会。未来属于那些敢于把开发流程交给 AI 来优化的人——他们不是在取代自己,而是在放大自己的影响力。📌关注本系列文章,我们将持续输出关于 AI 编程、GitHub 自动化、AI Agent 产品化的深度分析。

这里汇聚了前沿的技术分享与实用的开发技巧,带你探索从创意到企业的技术创业之路。 1373

VC如何在VC5中控制工具条的停靠位置

 2005-09-01如何在VC5中控制工具条的停靠位置 - [VC专栏]作者:宋立波 在VC5 中开发大型应用程序时,工具条通常是程序中必不可少的重要功能因素, 其中工具条在整个窗口中的停靠位置尤其关键,它直接影响到程序界面的外观形 象。下面针对笔者实际开发中各类工具条停靠位置的控制过程,详细阐述其实现 技巧。   一、标准工具条停靠位置的控制   VC5 应用程序向导生

guomei的专栏 1万+

SPMI总线协议(一)

系统电源管理接口( System Power Management Interface简称SPMI)是一种双线串行接口,用于连接片上系统(SoC)处理器系统的集成电源控制器(PC)与一个或多个电源管理集成电路(PMIC)电压调节系统。SPMI 使系统能够使用单个 SPMI 总线动态调整 SoC 内部电压域的电源和衬底偏置电压。移动设备和其他便携式设计正日益采用系SPMI)协议,实现多主多从系统,根据实时系统需求监测和动态控制供电电压。设计人员可以在系统级实现更低的功率。

qflook的博客 887

手把手教你玩转服务器芯片架构--​​7.1 项目1:基于FPGA的RISC-V软核设计(Verilog实现核心指令执行单元)​

本文介绍了基于FPGA的RISC-V软核设计实践项目。项目采用Verilog实现RV32I指令集核心处理器,包含指令解码、ALU、寄存器堆等关键模块设计,并通过功能仿真验证。在Xilinx Artix-7 FPGA上完成综合与部署,资源利用率控制在5%以内。最后探讨了五级流水线优化、指令集扩展等进阶方案。该实践完整覆盖了从指令集设计、RTL实现到FPGA部署的全流程,可作为学习处理器架构与FPGA开发的典型案例。

MHD0815的博客 173

为VC对话框添加工具条

对于基于对话框的应用程序,MFC AppWizard还没有对工具条的支持,但可以通过使用CToolBar类来构造生成工具条,我们下面介绍如何为对话框程序添加工具条。  用MFC AppWizard(EXE)生成一个基于对话框的应用程序,接受其默认设置,取名为demodialog。  给应用程序添加一个Toolbar的名称为IDR_TOOLBAR1的工具条资源,名称分别如下:  ID_NEW ∥生成新的程序等  ID_FILE_OPEN ∥打开文件  ID_FILE_SAVE ∥保存文件  ID_EXIT ∥

清蒸熊猫 3851

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

VC6中工具条的新特色

VC6中工具条的新特色加入时间:01-1-8 下午 09:10:32在Visual C++ 版本6中工具条的新特色作者: Dave Schmitt 微软在www.microsoft.com/visualc已经推出Visual C++6.0预览版几个月了。正式版预计到今年年底发布。同时,预览版显示出版本6将包含大量的改进和提高,包括支持Internet控件,例如扁平工具条等。虽然改进的控

silver的专栏 1441

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

VC制作工具条

自微软推出Windows 95后,一大批全新的控件使我们的应用程序更加美观,使用也更加方 便。其中一个显著的变化就是工具条不再是一个突出的3D小方框,而是变成了平面的状态,但 是只要把鼠标移动到上面,它就会自动地浮出来,大大方便了用户。 笔者经过一段时间摸索,终于找到了制作这种工具条的方法。原来Windows 95封装了许 多常用的控件,大都被放在Comctrl32.dll中,其中Toolbar控...

weixin_30633507的博客 67

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

VC真彩工具条

作者:skyformat99 下载源代码 例子程序最终效果图:   一直在寻找制作一个 24bit 及以上真彩工具条的简单有效方法,在各种VC站点都找到了很多有关这方面的文章和介绍,但是都存在一个不足的地方,介绍的不够详细,对初学者来说有点难度。最近终于

MOKA 487

vc真彩工具条的实现

例子程序最终效果图: 一直在寻找制作一个 24bit 及以上真彩工具条的简单有效方法,在各种VC站点都找到了很多有关这方面的文章和介绍,但是都存在一个不足的地方,介绍的不够详细,对初学者来说有点难度。最近终于有所发现,因此在这里将自己在制作真彩工具条方面的小经验介绍给大家,以期抛砖引玉。 在这里将介绍两个重点的内容,一个是制作真彩工具条的图形工具 Visual toolbar,另

ytuo1223的专栏 619
上一篇: 工具栏的使用
下一篇: 工具栏ToolBar上的CComboBox响应回车
skyremember
博客等级 码龄20年 204粉丝 484原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值