Win95 "开始" 菜单左边的蓝条是怎么做的 ?(50分)

  • 主题发起人 主题发起人 wangrui
  • 开始时间 开始时间
W

wangrui

Unregistered / Unconfirmed
GUEST, unregistred user!
Win95 "开始" 菜单左边的蓝条是怎么做的 ? 怎样在上面写字 ?
 
记得应该是用OWNER DRAW的MENU做吧,RxLib里有例子的。
把边距设置好,在OWNER DRAW的MENU的ONDRAW事件里做,
提供了字体旋转的算法,还凑合用
 
把menu分两列, 第一列光显示个bitmap, 第二列才是真正的menu.
(第二个menuitem.break := mbBreak)
 
?
没玩过,怎么玩呀?
 
插一个menuitem作为第一个. caption为空, bitmap为您要的bitmap. 写个OnMeasureItem事件确定高度为整个menu的高度.
第二个menuitem.break := mbBreak.
 
呵呵,原来是这样的啊,怪不得这个条子可以放在任何地方
 
又学了一招。
 
呵呵, START菜单确实是BMP图组成的, 在前年的PC COMPUTING杂志上有介绍, 如果
谁要, 我回去查查看:-)
 
小弟驽钝,还是看弄明白 ? 请 Another-eYes 大哥再详细些好吗?
cytown 大哥,小弟也想看看您的高招 !
 
to cytown :
我要!my email:datoncg1@21cn.com
 
to cytown
我也要!
 
还是蛤蟆掉进井——不懂
EYES再详细点?我太笨的说
 
cj, 别那么懒呀
用个TPopupMenu试一下就知道了(设计时看不到效果, 运行时可以)
把popupmenu.ownerdraw置为true.
加入n个menuitem
第一个menuitem的bitmap加入一幅图. caption为空, enabled为false;

OnMeasureItem中写:
width := menuitem1.bitmap.width;
height := menuitem1.bitmap.height;

OnDrawItem中写:
acanvas.draw(arect.left, arect.top, menuitem1.bitmap);

第二个menuitem的break设为mbBreak.
 
Another_eYes提出的问题虽说多少有点对的感觉,但cj注意到按这种方法来做的话可能会导致一个问题就是当第二个menuitem以后的菜单字符串比较长时,图片这边是否会露出一大片空间而没有windows95/98那样的效果,你不凡试一试 Venus 这个控件,如果需要的话你可以到网上下载或告知E_mail给你寄一个过去。OK!
 
明白了,方法不太标准吧:-)
 
下载一个有源码的控件看看不就知道了?
我的主页上面有的,找找?
<a href="http://glowing.yeah.net">http://glowing.yeah.net</a>
 
[HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/
Windows/CurrentVersion/explorer/Shell Icons]
"19"="D://PCMAG//USER//1622//P1.BMP,0"
"20"="D://PCMAG//USER//1622//P2.BMP,0"
"21"="D://PCMAG//USER//1622//P3.BMP,0"
"22"="D://PCMAG//USER//1622//P4.BMP,0"
"23"="D://PCMAG//USER//1622//P5.BMP,0"
"24"="D://PCMAG//USER//1622//P6.BMP,0"

D://PCMAG//USER//1622//P1.BMP~P6.BMP就是要替换的图片, 规格32x32bmp.

 
呵呵,Win9X的开始菜单已经不是简单的菜单了,而是一个特殊的窗口"BaseBar",
在这个BaseBar中,由许多"RebarWindow32"(Rebar)类的窗口,相信大家都知道了,
而在"Rebar"中又创建了几个"SysPager"(???)不知道是什么东西,
最后在SysPager里面才是ToolBarWindow32(ToolBar)。这些窗口在Shell启动之后
就已经创建好了,可以通过ShowWindow显示出来,若是不小心关了这些窗口就打不开
该菜单了。
关于菜单左边的蓝条,你可以用能够编辑资源的工具打开Explorer.exe(当然得先拷
一份才能编辑),“开始”两个字和相应的位图都在里面。(我居然在Win98的Explorer.exe中找到了Window95的位图,呵呵)
 
呵呵, 其实编程确实很简单, 我做了个例子, 谁要?
 
呵呵,来一个!
hjtbox@126.com
 

Similar threads

回复
0
查看
804
不得闲
回复
0
查看
812
不得闲
回复
0
查看
1K
不得闲
回复
0
查看
863
不得闲
回复
0
查看
848
不得闲
后退
顶部