说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

在菜单中加入图标 -VB资料

HTML文档下载 WORD文档下载 PDF文档下载
在菜单中加入图标 -VB资料

 
VB菜单编辑器所提供的默认菜单是不能在菜单项中加入图标的,而许多流行的软件大都采用了漂亮的带有小图标的菜单,如果想利用VB实现这种效果就必须要调用API函数来实现了。例中我们使用了三个与菜单操作有关的函数:GetMenu、SetMenuItemBitmaps、GetSubMenu。

  
  我们先来声明API函数,本例中用到的三个函数声明如下:
   Private Declare Function GetMenu Lib "user32" (ByVal hwnd As Long) As Long

   Private Declare Function GetSubMenu Lib "user32" (ByVal hMenu As Long, ByVal nPos As Long) As Long

   Private Declare Function SetMenuItemBitmaps Lib "user32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long, ByVal hBitmapUnchecked As Long, ByVal hBitmapChecked As Long) As Long

  GetMenu函数的作用得到一个窗口中的菜单的句柄(这个菜单句柄应理解为处于某个窗体上的所有菜单的入口),其中各个参数的意义如下表所示:

参数 意义
hwnd Long,窗口句柄。对于vb,这应该是一个窗体句柄
返回值 Long,依附于指定窗口的一个菜单的句柄(如果有菜单);否则返回零

  GetSubMenu函数用于取得一个弹出式菜单(弹出式菜单是指处于任何一级的菜单,注意不是菜单项)的句柄,它位于菜单中指定的位置,它的各个参数的意义如下:

参数 意义
hMenu Long,菜单的句柄
nPos Long,次级菜单在上级菜单中的位置。第一个位置的编号为0
返回值 Long,位于指定位置的弹出式菜单的句柄(如果有的话);否则返回零

  SetMenuItemBitmaps函数用于设置一幅特定位图,令其在指定的菜单条目中使用,代替标准的复选符号(√),它的各个参数的意义如下:

参数 意义
hMenu Long,菜单的句柄
nPosition Long,欲设置位图的一个菜单条目的标识符。如在wFlags参数中指定了MF_BYCOMMAND,这个参数就代表欲改变的菜单条目的命令ID。如设置的是MF_BYPOSITION,这个参数就代表菜单条目在菜单中的位置(第一个条目的位置为零)
wFlags Long,常数MF_BYCOMMAND或MF_BYPOSITION,取决于nPosition参数
hBitmapUnchecked Long,撤消复选时为菜单条目显示的一幅位图的句柄。如果为零,表示不在未复选状态下显示任何标志
hBitmapChecked Long,复选时为菜单条目显示的一幅位图的句柄。可设为零,表示复选时不显示任何标志。如两个位图句柄的值都是零,则为这个条目恢复使用默认复选位图
返回值 Long,非零表示成功,零表示失败。

  下面我们看看怎样为菜单的指定项目加上图标,步骤一:取得菜单的句柄并赋值给mHandle,接着取得mHandle句柄所指菜单的第一个弹出式菜单的句柄并赋值给sHandle:
   mHandle = GetMenu(form.hwnd)
   sHandle = GetSubMenu(mHandle, 0)

  然后就为菜单项加入图标,这里我们把wFlags参数设为了MF_BYPOSITION,也就是说使用菜单项的位置(从序号0开始)来标示菜单项:
   lRet = SetMenuItemBitmaps(sHandle, 0, MF_BYPOSITION, imOpen.Picture, imOpen.Picture)
   lRet = SetMenuItemBitmaps(sHandle, 1, MF_BYPOSITION, imSave.Picture, imSave.Picture)

  以上是为菜单项添加图标的基本方法,例中还演示了怎样为次级菜单中的菜单项添加图标,以及菜单项处于复选/非复选状态时,对应图标发生变化的方法,具体的实现方法可以参照程序中的注释。
【走近院士】李德毅:大数据是连接虚拟和现实世界的桥梁 微软Build2014大会第二天干货总结 Microsoft Azure拥抱Puppet、Chef、MongoDB... 唏嘘不已!Brendan Eich上任Mozilla CEO仅十天即因歧视同性恋被迫辞职 最火HTML5 JavaScript游戏引擎:国外篇(一) Facebook发布PlanOut 开源部分A/B测试源码 一周消息树:6款Java转C#的最佳工具、Web开发者必备的9个软技能 对话“宙斯杯”获奖代表:依托京东云平台,打造精品电商CRM 关于微软开源WinJS,开发者必须知道的5件事 告别丑陋banner条,InMobi联合开发者尝试原生广告 免费游戏开发经验谈:第一印象很重要 《近匠》小旭音乐:游戏音乐金牌匠人的练级之路 日600亿消息,月4.65亿用户——WhatsApp的Erlang世界 一周热点:Cloudera新一轮融资总额已达9亿美元 【走近院士】李未:实现云服务的有效方法是群体软件工程 大神云集 大型创客聚会2014深圳Maker Faire盛大开幕 直击Maker Faire,将精彩“一网打尽”! 电池革命:超级充电器来袭,30秒为手机充满电 风雨13载,Windows XP今起正式退役 向Facebook看齐,Twitter收购Android屏幕待机应用开发商Cover 绝对的超现实!Jaunt打造360°全景VR电影 Unite China 2014课程解析:行业解决方案专场免费开放 Manhattan,Twitter规模的实时、多租户分布式数据库 Ceph浅析(中):结构、工作原理及流程 孙元浩:基于Spark引擎的高速内存分析和挖掘工具应用 腾讯私有云背后的团队,品高要做企业云计算的产品经理 撼动企业应用架构的十大技术趋势 Airbnb的管理之道:产品设计的点评策略与技巧 Windows 8.1 Update 1的下载地址和八点须知 《近匠》棱镜:手游渠道SDK平台的技术历程 OpenSSL究竟为何物,为何它的影响力如此之大? Redis大冒险:如何跳出SQL这个坑 支持国产软件——海威数据仓库前台工具Hdc3.x下载 救救我的linux啊?它快不行了。 回答“一个动态创建孔件时的错误,请大家指点”贴后请到这里面领分(共700分)(六) 怎么在Applet中定时显示一数值? 受不了啦,有谁在上班时间在CSDN泡上一天的?? COM、DCOM、COM+有何区别? 该死的缓冲:document.all("pb").innerText="fas"; 这个问题,我不会!你呢??来看看! 请问如何用ASP同时上传多张图片? 哪位大侠能提供关于"资源文件(*.rc)"在BCB5中使用的系统、详细的资料? 菜鸟问题:我想用一个win32 api函数但是不懂得如何使用。 listview与数据库的一系列联系,重点!!! 请教!!!帮帮小弟!!! 两周了--还是不行 怎样取得本机的名称? 我想听网络广播, 怎样做呢? 一个小问题 ????? 回答“一个动态创建孔件时的错误,请大家指点”贴后请到这里面领分(共700分)(七) 计算机知识大赛 我的问题很简单,可是我不会! 回答“一个动态创建孔件时的错误,请大家指点”贴后请到这里面领分(共700分)(八) 这样的游戏一个值多少钱?请报价。 高手快进!小弟有一事不明!!告急! 取ADO的recordset对象的recordcount属性总是 -1,如何解决? 这样的网络游戏一个值多少钱?请报价。 软件发布:《加密樵夫》 软件发布:《加密樵夫》 谁有Dreamweaver4.0的注册码,我晕,555555555…~~~~~~~~~ 我曾在本论坛看到一篇“用纯ASP代码实现图片上传并存入数据库中”的文章,可是怎样实现一个页面上传多幅图片呢,高手能否帮忙看一下? 如何检测一个超链接是不是死链接 软件发布:加密专家系统 只要点一下,妹妹我就以身相许 谁有Dreamweaver4.0的注册码,我晕,555555555…~~~~~~~~~11 请问只要是线程就有消息队列,还是此线程产生window后才有消息队列?在控制台程序中,在消息循环中,当受到一wm_timer消息时,此消息将发送给那一window procedure? 软件发布:三维几何画板 CSDN有徐州的朋友吗 请教高手一个关于图像格式的问题 高手清帮忙:如何获得一个控件的电子签名认证?急,急,急! 觅有时间有经验用MAPINFO开发GIS的高手? IE 能不能同时浏览2种以上不同设置的网页? 初级asp问题 询问-----上海在哪里有软件考试报名? 怎样用SDK的方法改变文本框的前景色和背景色?(内空) 能推荐几个有关COM、ActiveX技术的网站吗?每个10分不够再加。 请问ljhua,ASP网页怎样调用*.bat文件,是服务器上的还是客户机上的bat? ****************** 先散掉点分,省得走的时候累赘 ****************** UNICODE和WinMain 一个空战游戏,附源程序! 创建WebSnap应用程序(一) 请教一个http错误号 vs.net安装(2) 第8-10题) 关于音标的几道题……根据相应的音标补全单词1./əu/ h_le thr__t g__t b__t2./ɔi/ b__ t__let t__ s__l3./ai/ b_k_ m_ k_t_ fl__4./eə/ p___ ch___ b____ h_____5./au/ h__se h__ n__ gr__nd6./ei/ c_k_ d__ m__k__ pl__7./iə i是虚数单位、若复数Z=i(1+3i)、则复数的虚部为 初中数学,这道题是怎么算出来的?第8题 图为一台电热水器的电路示意图.当开关S闭合时,电热水器处于加热状态,功率为440W;当S断开时,电热水器处于保温状态.整个电路的功率为22W.求:(1)当S闭合时,电热水器工作5min消耗的电能为 英语翻译 反比例函数y=k/x图像经过点(3,2014/3)p为其图像上一个整点(注:整点表示很坐标纵坐标均为整数的点),那么x+y的最大值是 四年级下册的口算练习题,一定是乘除法的.20道比如:0.5×10= 最好有答案. 英语翻译 (第22章第三单元测试卷答案)(第23章第二单元答案)(第23章第三单元答案) 一个长6dm、宽5dm、高8dm的长方形容器内装满水.这个容器内水的体积是( )立方分米.把一根24dm长的铁丝折成一个最大的正方形,它的面积是( )平方分米.把一根24dm长的铁丝折成一个最大的 求英语1题 初中数学七年级下人教版基础训练第39页第8题答案 流域自然侵蚀速率是反映流域地貌形态变化的重要指标.据研究,南美洲亚马孙河流域自然侵蚀速率远低于南亚恒河流域,其最主要的影响因素是A.地形 B.降水量 C.植被类型 D. 城市化水平 求英语15题 新课标人教版二年级【下】语文单元测试卷【4】 问几道数学题急这用!1.一个数的5倍再加上5正好是100这个数是多少?(方程解)2.一个数的8倍与它4分之1的和是66,这个数是多少?(方程解)3.甲乙两个工程队同修一条公路,它们从两端同时施工. 怎样学英语 七年级英语报刊急练习题 问几道数学题:具体过程要讲清楚点哦,例如表示什么的~1.一堆煤,第一天运走1/4,第二天运走剩下的一半,第三天又运了剩下的2/3,最后剩下的煤比第三天运走的3/4少10吨.三天一共运了几吨?2.一项 这句英语有错误吗Do live is the biggest adventure 我没有问题想问,怎么办啊 七年级英语练习题报刊 有一条5.6米长的木料,如锯成长为0.8米的木料,需要30分钟,那麽锯成每段长0.7米的短木料,需要()分钟 我想问问题,怎么办呢 七年级英语报刊练习题急 1、Which city will hold the 2012 Olympic Gamas?Is the city in USA?2、Is Hangzhou in Jiangsu Province?3、Is New York the capital of USA?4、How many legs does a butterfly have?5、Which country has the most poeple?6、In 2004,16 June falls on a Wed 问到没有问题又想问问题怎么办! 英语报纸习题,初一上一.根据所给句子完成下句,是两句意思相同或相近.每空一词1. He reads English for thirty minutes every morningHe __ __ __ __ __ English every morning2. I don't know the answer to the question.I don't kn 有一块长5m的模板现用它做一个斜面,已知斜面与水平面夹角为30度,物体重为450N,现将这个物体沿斜面推到高2m的位置,若斜面的机械效率为75%,求 (1)推力做的有用功 (2)推力的大小 (3)推 新起点 初中数学同步单元测试卷七(上)(十)26题怎么做啊? 平方根报纸练习题初一下1.一房间的地面恰好由64块正方形地砖铺成,共16平方米,求每块地砖的边长.2.已知2a-1的平方根是+3,-3,b+14的平方根是+4,-4,求a+2b的平方根. 翻译句子,每空一词.1.我们每天都刷牙.we (___)(___)(___)every day,2.蒂姆星期六早上打网球.tim (___)(___)on (___)(___).3.你想了解安娜早上的活动吗?do you want to (___)(___)(___)mo 说废话的别来.算了自己做好了随便找个人说句话啦要分的快啦 七年级英语报纸U7——U9练习题1.根据首字母及句意提示,完成单词.My sister most of his time on his work every day.2.句型转换Peter isn’t doing his homework now.(用last night 作时间状语改写句子)3.用介词填空.1.< 根据首字母完成单词.1.a say yes2.r to get something given3.f not succeed4.e go or come into 5.s try to look for 二期课改配套教辅读物2011-2012学年度 修订本光明日报?出版社 七年级上学期英语报纸13期频度副词练习题请快点谢谢我爸爸总是很忙. my father ______ _______ busy. 2.玛丽经常帮她妈妈打扫房间 mary ______ ______ her mother clean the room. 3.我通常早上七点吃早餐. i 这道题该怎么做啊希望有人能帮我 二期课改配套教辅读物 试卷7, 高中生订阅哪些报纸、杂志来提高英语阅读能力?最好有中文翻译的,或者后面有练习题可以检测是否读懂? 希望杯难不难,还记得题目的话,给我出一道, 初中数学 同步练习与测试 的答案 急需 西游记练习题西游记每回合出三个问题 谢. 这道题怎么做 快点你快点给我答案希望快点过答案 1、已知(x+my)(x+ny)=X的平方+2xy-6y的平方,求(m+n)mn的值.2、已知:a的平方+a的平方分之一=3,求a-a分之一的值.3、若4x的平方-3(a-2)x+25是完全平方式,求a的值.4、当x为何值时,x的平方+6x-15有最值.5、求 西游记的练习题读完西游记后,哪些练习题可以出?要多而且精,最好不要选择和填空,多些理解性的题,如:孙悟空是个怎样的人物等等. 希望各位能纯手工打造质量为m的物体以恒定速率v沿半径为R的竖直圆轨道运动,已知物体与竖直圆轨道间的摩擦因数为μ,求物体从轨道最低点运动到最高点的过程中,摩擦力做了多少功.望回答 初中数学 第八题 西游记的相关练习题要有答案的! 1、有颜色是红、黄、蓝三种小球各30个,混合放在一个布袋里,一次摸出10个小球,其中最少有几个小球的颜色是相同的,说说理由2、布袋里有装有8个红球和5个白球,一次必须摸出几个球才能保证 初中数学!第八题,谢谢! 西游记试题是要提问题的,就是帮我写一些西游记的问题,是关于每一章回提问的,我只要第70~100章的,每回提2个问题,一共60个,至少40个,如果我采用了,会追加很多分的~不对,我的意思是关于每回 这道题的答案…………………… 如图,在△ABC中,AB=AC,以AB为直径的○O分别交BC,AC于点D,E,连接EB交OD于点F.(1)求证OD⊥BE(2) 若DE=√5/2,AB=5/2,求AE的长. 西游记的习题越那难月好 the teacher asked the boy many questions,but he only answered____of them.A.some B.lots C.each D .few 某铁桥长1000米 现有一列火车要从桥上过 火车完全通过桥需要60秒 整列火车在桥上的时间是40秒 求火车的速度和长……列出方程组并说明理由就行了 比如 火车的长度等于. 一道物理题,(双选)一个物体底面积为0.1平方米,桌子的底面积为1平方米,物体重200N,那么桌子所受物体压强为A.可能是200pa B.可能是2000PaC.可能是4000Pa D.可能是1000Pa双选双选! 有人从一把扑克牌里选了一张牌,他把这张牌的花色告诉了老王,而把点数告诉了老张.老王和老张都晓得这把牌由以下牌构成:黑桃勾、8、4、2;红桃尖、框、4;方片尖、5;梅花锯、框、5、4
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn