大雀软件园

首页 软件下载 安卓市场 苹果市场 电脑游戏 安卓游戏 文章资讯 驱动下载
技术开发 网页设计 图形图象 数据库 网络媒体 网络安全 站长CLUB 操作系统 媒体动画 安卓相关
当前位置: 首页 -> 技术开发 -> 程序开发 -> 创建位图菜单

创建位图菜单

时间: 2021-07-31 作者:daque

----创建位图菜单本来特殊大略,它须要用到windows运用步调编制程序接口(api)的少许菜单因变量和位图因变量,你须要将那些因变量的证明包括在你的运用步调的规范模块中,简直的实质请拜见样例步调。办法如次: 运用因变量getsubmenu来索取子菜单项的句柄,并经过运用因变量createcompatibledc来创造一个兼容的摆设情况刻画表; 在一个轮回进程中经过运用createcompatiblebitmap因变量,selectobject因变量以及bitblt因变量来辨别将对准各个菜单项所载入的位图选入到兼容摆设情况中; 经过modifymenu因变量绘制真实的位图菜单选项; 运用deletedc因变量来开释摆设情况,再不其余的步调不妨运用它们。 ----索取位图不妨有多种本领,在本样例步调中在窗体上树立了四个图形框控件,运用它们载入4个预设的图标来动作菜单选项位图的源文献,固然你也不妨运用其余的本领,比方运用loadpicture因变量来从磁盘承载位图。 样例步调 在visual basic中发端一个新的工程,沿用缺省的本领创造form1。 创造一个新的模块,沿用缺省的本领创造module1.bas。 将如次的证明语句和恒量增添到module1.bas模块中: option explicitdeclare function getmenu lib "user32" (byval hwnd as long) as longdeclare function getsubmenu lib "user32" (byval hmenu as long, byval npos as long) as longdeclare function getmenuitemid lib "user32" (byval hmenu as long,byval npos as long) as longdeclare function modifymenu lib "user32" alias "modifymenua" (byval hmenu as long,byval nposition as long, byval wflags as long,byval widnewitem as long, byval lpstring as any) as longdeclare function createcompatibledc lib "gdi32" (byval hdc as long) as longdeclare function deletedc lib "gdi32" (byval hdc as long) as longdeclare function createcompatiblebitmap lib "gdi32"(byval hdc as long, byval nwidth as long, byval nheight as long) as longdeclare function selectobject lib "gdi32" (byval hdc as long, byval hobject as long) as longdeclare function bitblt lib "gdi32" (byval hdestdc as long, byval x as long,byval y as long, byval nwidth as long, byval nheight as long, byval hsrcdcas long, byval xsrc as long, byval ysrc as long, byval dwrop as long) as longpublic const srccopy = &hcc0020public const mf_byposition = &h400&public const mf_bitmap = &h4&提防上头的证明语句须要抄写在一条龙内。 在form1上增添4个图形框控件,将它们的name属性树立为picture1,将它们的index属性顺序树立为0,1,2,3,将它们的autoredrew属性树立为true,将它们的autoresize属性树立为ture,以及将它们的visable属性树立为false。 将上头的4个图形框控件的picture属性顺序树立为face1.ico,face2.ico,face3.ico,face4.ico。 在form1上增添第一个菜单项,将它的题目树立为“[&f]文献”,称呼树立为mnufile。在其下增添一个子菜单项,将它的题目树立为“[&e]退出”,称呼树立为mnuexit。 在form1上增添第二个菜单项,将它的题目树立为“[&a]脸谱”,称呼树立为mnuface。在其下增添4个子菜单项,辨别将改4个子菜单项的称呼树立为“[n]平常”,“[&s]浅笑”,“ [&l]绝倒”,以及“[&o]凄怆”。将它们的称呼树立为“mnufacesel”,并相映将这4个子菜单项的索引树立为0,1,2,3。 将如次的代码增添到form1的form_load事变中: private sub form_load()dim nloopctr as integerdim lresult as longdim htempdc as longdim nwidth as integerdim nheight as integerdim ltempid as longdim hmenuid as longdim litemcount as longdim hbitmap as longnwidth = picture1(nloopctr).width \ screen.twipsperpixelxnheight = picture1(nloopctr).height \ screen.twipsperpixelyhmenuid = getsubmenu(getmenu((me.hwnd)), 1)htempdc = createcompatibledc(picture1(nloopctr).hdc)for nloopctr = 0 to 3hbitmap = createcompatiblebitmap(picture1(nloopctr).hdc, nwidth,nheight)ltempid = selectobject(htempdc, hbitmap)lresult = bitblt(htempdc, 0, 0, nwidth, nheight, (picture1(nloopctr).hdc), 0, 0, srccopy)ltempid = selectobject(htempdc, ltempid)nufacesel(nloopctr).caption = ""lresult = modifymenu(hmenuid, nloopctr, mf_byposition or mf_bitmap,getmenuitemid(hmenuid, nloopctr), hbitmap)next nloopctrlresult = deletedc(htempdc)end sub将如次的代码增添到“退出”子菜单的单击事变中: private sub mnuexit_click(index as integer)select case indexcase 0unload meend selectend sub运转该样例步调,单击“脸谱”菜单,则会看到由4个脸谱图标所产生的位图子菜单项,单击“文献”\“退出”菜单可退出运用步调。 

热门阅览

最新排行

Copyright © 2019-2021 大雀软件园(www.daque.cn) All Rights Reserved.