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

在菜单中加入图标 -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)

  以上是为菜单项添加图标的基本方法,例中还演示了怎样为次级菜单中的菜单项添加图标,以及菜单项处于复选/非复选状态时,对应图标发生变化的方法,具体的实现方法可以参照程序中的注释。
Google Play Game Service详解 不仅提供API更提供后端支持 IBM Power走向Linux,是必然的! 美国国家安全局解密特工培训手册:如何利用谷歌等大众搜索工具搜集保密数据 微软IE10如何保护上网安全(大图) 谷歌无畏苹果的理由:强力的算法和基础设施架构 开发者热议异构统一内存访问技术(hUMA) 千万级并发实现的秘密:内核不是解决方案,而是问题所在! Apache RewriteRule重写规则语法入门 IDC:2013 Q1 Android和iOS出货量占92% WP首超黑莓 传雅虎欲10亿美元收购轻博客网站Tumblr A Beautiful Mess:如何赚男人女人的钱 CSS、JavaScript开发者必备的10款最佳工具 IBM推出API管理平台 抢占API经济市场份额 2013中国云计算榜单之一:15云平台,谁主沉浮? 移动周报:百万壁纸、85后程序媛,我为梦想代言! 电信天翼开放平台:为App开发者免费提供云存储和云主机服务 Google新的Web UI库:Ploymer 研发周报:让开发者高效编程的10个新框架 拯救行将就木的PHP:谷歌为GAE添加PHP支持 PPT集萃(一):10位业内高管分享云计算技术理念与行业趋势 得益于苹果谷歌,未来可穿戴技术市场规模可达500亿美元 雅虎11亿美元押注Tumblr三大因素:用户、社交、内容 Perceptual:英特尔感知计算挑战赛 正式启动 吴义坚:创业去!我用深度神经网络,处理语音识别 浅谈用户体验的“反面模式 可穿戴设备又一站:增强现实眼镜CastAR 数字医疗投资将破纪录 投资人看好这些细分领域 Mayer又下一城:雅虎收购Tumblr推进移动化? 前端开发利器:代码预处理工具Prepros 一个轻量级的JavaScript库:Reactor.js [探讨] 用户体验设计师现在面临怎样的机遇和挑战? 在VB里调用API打开HTML文件 如何使程序运行时隐藏dialog窗口? 关于datawindow脚本内容! AtlReportError问题 Oracle8i Release 8.1.5 原版电子文档(pdf)--- 谁要!!!!! 如何用delphi实现图像网络传输与存储?请高手介绍方法,包括用什么库,通过TCP/IP怎么办? 请教打印问题 一个菜鸟的提问 在BEAN中,System.out.println("yyy")为什么不能输出呀? 局域网接ADSL,如何限制用户上互联网? 如何不安装oracle的客户端用来连接服务器上的oracle数据库 请问哪有VC关于ADO编程的书籍下载? 关于组件的问题? 用DAO连接数据库,在我的机器上运行没问题,但在其它机器上一运行就挂 谁能告我liulee的个人网页地址呀?? 关于在浏览器中直接运行VB程序的问题 十万火急,我遇上两个奇怪的问题。答者重谢。 请问:如何使用toString? 各位,期待已久的简单任务来了!又是100分!(SQL Server 2000) 好累啊,想放弃了,但又无法回头! Java中,Inner class可不可以使用final修饰符? 谁能告我liulee的个人网页地址呀??急 请教如何在程序运行时修改dbgrid控件options属性中的关于多选控制和整行选择的两个属性? 请推荐UNIX方面的书籍 如何使用toString()方法,谢谢 菜鸟系列:一个简单的编译错误,但我不明白!救命啊!!!! 这就是标准?SJ/T11234 SJ/T11235培训纪实 在哪里看我现在linux系统中用的应用软件的版本号?比如wu-ftp sendmail等等! 操作系统版本不同问题 BCB下怎么调用WINDOWS API函数,急 cpu风扇不转的问题…… 游戏开发的高手或者3维建模的高手,是怎样开发人物模型的呢? 今天下午有没有去微软发布会的????马上回答 关于字体问题!请教会者不难者!!!!!!!! 請問怎麼定義小一點得符點數???? ReadFile超时返回什么? 我的机器装了2000server,2000profession 和NT4.0,现在机器空间不够想把nt4.0和2000profession 卸载,请问应该如何进行?? 怎样用PB代码实现在MDI窗口里的 Ctrl + Tab 的功能 ? 如何将静态库加入项目中,有头文件,SETING出也加入,为何说和系统的库重复定义 如何调用非mfc的程序调用mfc下开发的动态连接库, 请问谁有监测图片变化的部分代码?(在线等待) GetCurrentDirectory()?? 用ADo更新图片(bmp,jpg)难道只能将原来的数据记录删除后在添加吗?不能直接更新吗? 请大家帮忙解决一下循环体的问题!!:) 请问oracle 自己带的http server(实际上是apache)如何配置class path 给你100分(OLE) 我在制作一个网络浏览器时遇到一个问题,在线等你的帮助 公司不做软件了,失业了,高兴送分 JNI 中内存管理的问题 ehlib控件的问题,如何在表中的一字段显示一个列表?分可以加,,,在线等 大家帮我 帮忙写一下Na2CO3,NaHCO3,Na3PO4,AlCl3水溶液的电荷守恒,原子守恒,和质子守恒的式子 碳酸钠和碳酸溶液中水的电离程度比较 关于自然界中霜雨露雾的形成,说法错误的是A云中有小水滴,他们是水蒸气升入高空时遇冷液化而成的B雾是漂浮在空气中的大量的水蒸气C露是地面附近的水蒸气液化成的小水珠D霜是空气中的 Na2O和CaO都是碱性氧化物吗?CO和SO3都是酸性氧化物吗? 当光线垂直于水面射入水中,光的传播方向是什么,折射角为多少度,在折射现象中光路是什么的光的传播方向变吗在折射现象中光路是可逆的吗 光从空气中射入斜射入另一种介质中,入射光线会发生偏折,入射角大于折射角. 如果光从空气中射入真空中,入射角是不是会小于折射角.入射角和折射角的关系和介质的密度有没有关系?(请详 每天早上最好的锻炼时间是几点男生 当光线从空气中射入水中,光的传播方向会发生改变,这就是光的折射现象.(前面的都是废话,与题目无关)问题:图中的∠1和∠2是对顶角吗(这个我知道)试比较∠1与∠2大小.(∠1大∠2小 盛过石灰水的试剂瓶内壁有一层白膜,形成白膜原因? SO3+CaO=CaSO3是什么性质?有一瓶无色透明的溶液,可能含有KCL,CacL2,Na2CO3,CuCl2,NaNO3五种盐或其中的一种或几种,取一部分溶液放在试管中,加入组量的BaCl2容易,结果有白色沉淀析出,将沉淀过滤,向过 当光线从空气射入水中时,光的传播的方向发生了改变,这就是折射现象.图中∠1=∠ 长期存放石灰水的试剂瓶内壁上往往形成一层不溶于水的白色物质,要洗去该物质可选用A 水 B纯碱溶液 C洗衣粉 D稀盐酸 人在水中向前的速度与阻力的关系是怎样的,一般游泳的人会再水中受到多大阻力? 早上和晚上那个时间锻炼最好? 当光线从空气中射入水中,光的传播方向会发生改变,这就是光的折射现象∠1=43°,∠2=108°,试问光的传播方向改变了多少度?写错了,∠2=27° 什么时候的空气最新鲜? CAO的pH值是多少? 长期存放石灰水的试剂瓶壁有一层白色的固体物质,它是( ),形成白色固体的 化学方程式为( );清洗长期存放石灰水的试剂瓶壁有一层白色的固体物质,它是( 形成白色固体的 化学方程式为( ) 什么时辰空气最新鲜 早上几点钟为最好的锻炼时间? 盛放石灰水的试剂瓶放置时间长了,在瓶口会形成一些白色粉末.用化学方程式如何表示?(急) 早晨什么时间空气最新鲜? 有一种和其他物质不同 CaO SO3 Fe2O3 FeO 盛放石灰水的试剂瓶放置了,瓶口会形成一些白色粉末少打字了,"放置久了" 早晨什么时间空气最新鲜呢? 正能量有哪些?就比如;让座、捐款、义卖、【还有什么?【方便的话给我一篇正能量的作文!要自己做的正能量!不是自己身边】 长期盛放石灰水的试剂瓶壁上有一层白色固体物质,它是—— 澄清石灰水变浑浊后生成的新物质是______的沉淀和_______ 下面四种溶液中,CH3COONa,NaHCO3,Na2CO3,NaClO.水的电离程度最大的是? 长期存放石灰水的玻璃试剂瓶内壁有一层白色物质,它是?形成原因是【用化学方程式表示】? 为什么说二氧化碳通入石灰水后“变浑浊”比“生成白色沉淀”恰当? NA2CO3溶液中水电离产生的H离子浓度当PH=9时 在盛满三分之二水的杯子里放入5克盐,再放入鸡蛋,为什么鸡蛋会浮起来? 澄清石灰水通入二氧化碳后溶液变浑浊,生成()色的()沉淀 同样的向外辐射热的时间,为什么空气的温度比草的高,是根据什么原理 重100牛的水可以产生多大的浮力 有一包白色固体粉末A,加入Hcl生成气体B和白色沉淀,把B通入澄清石灰水,澄清石灰水变浑浊.往白色沉淀中滴加HCL,沉淀不消失.A、B、白色沉淀是什么物质 说明理由 电流击穿空气时能产生多高的温度? 盛装有石灰水的试剂瓶,日久内壁会附着一层白色固体,要想清洗掉这层白色固体,常用的试剂是A用水洗 B热的纯碱溶液 C稀硫酸 D稀盐酸 除了二氧化碳,澄清石灰水和什么生成沉淀这个气体要对自然界生命活动至关重要,问铜和二氧化碳高温反应吗,如果不反应,那么红色金属单质和二氧化碳反应生成碳或一氧化碳,红色金属 求正能量 盛放石灰水的试剂瓶内壁会有一圈白色物质,这是应为什么?宜用什么清洗?CaCO3是什么 为什么我老是梦到我自己在海中央游泳?沉入海底,后来又游出水面了? 我身边的正能量 征文400字左右 久置的装石灰水的试剂瓶用盐酸清洗化学方程式 物体在水里受到的浮力和压力一样吗? 谁能给我些正能量啊?我希望每天能量满满的活着 盛石灰水的试剂瓶壁上的白膜用盐酸清除的化学方程式 水沉底后有没有受到浮力?为什么?怎么样才算没有浮力.怎样才是?---具体. 水结冰体积变大会产生什么危害?水结冰体积变大这种现象会产生什么危害?越快越好噢!^=^ 水结冰时——体积如何变化? 一个球体再充满水的土里的浮力,跟在水里的浮力一样么? 水结冰体积变大有什么危害 实验室放石灰水的瓶中常有不溶于水的CaCO3,可加 除去,化学方程式为 物质的量浓度相等的Na2CO3和NaHCO3溶液等体积混合后的溶液中,物料守恒物料守衡2NA+=3CO3-+3HCO3-+3H2CO3 这是怎么得出来的? Na2co3溶液中水电离的氢离子个数为什么大于Nahco3同体积同物质的量 注意是氢离子个数 解释自然界中:雨 云 雪 露 雾 霜的形成依次是 na2co3 nahco3 混合溶液中的电荷守恒式 水结冰,体积变大,有什么危害? 自然界中“霜”、“雾”、“露”是怎样形成的,它们的形成过程有什么不同?
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘