首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > PB >

苦闷,PB11中菜单颜色的修改+放分

2013-01-07 
郁闷,PB11中菜单颜色的修改+放分看着菜单颜色可以修改,真是开心啊,结果一到代码中去指定,却说是只读属性,

郁闷,PB11中菜单颜色的修改+放分
看着菜单颜色可以修改,真是开心啊,结果一到代码中去指定,却说是只读属性,真是太郁闷了,看着其它控件的颜色基本都可以改,就这只能在设计时指定。

哪位知道有啥偏门方法可以在代码中修改不?
[解决办法]
不会有方法的。按手册上说的,你只能改这三个MenuAnimation, MenuImage, MenuTitleText 
[解决办法]
SuperMenu不能满足要求?
[解决办法]
先Mark 一下,关注
[解决办法]
这需求也太变态了
[解决办法]
没有试过,尝试下自己做个Mneu吧

[解决办法]
我来了
[解决办法]
菜单颜色…… PB也一样能改,不单只可以改颜色,还能按某张底图来进行修改~ 主菜单可以,子菜单也行
是用API的,用位图刷子就可以了,提示你一点PB代码吧

Long ll_hwnd, ll_BitMapBrush
Long ll_hMainMenu, ll_hSubMenu
Long ll_hBitMap
String ls_BitMapFileName
MENUINFO lstr_MenuInfo  

//获取菜单的父句柄
ll_hwnd = Handle(Parent)

//创建位图刷子
ll_BitMapBrush = CreateSolidBrush(15920621)

//设置MENUINFO结构
lstr_MenuInfo.cbSize = 28
lstr_MenuInfo.cyMax = 0
lstr_MenuInfo.fMask = MIM_BACKGROUND
lstr_MenuInfo.hbrBack = ll_BitMapBrush

//获取窗口主菜单的句柄
ll_hMainMenu = GetMenu(ll_hwnd)

//设置主菜单信息
SetMenuInfo(ll_hMainMenu, lstr_MenuInfo) 

//重新绘制菜单
DrawMenuBar(ll_hwnd)

//释放对象
DeleteObject(ll_hBitMap)

[解决办法]
引用楼主 xiongxiao 的帖子:
看着菜单颜色可以修改,真是开心啊,结果一到代码中去指定,却说是只读属性,真是太郁闷了,看着其它控件的颜色基本都可以改,就这只能在设计时指定。 

哪位知道有啥偏门方法可以在代码中修改不?

用皮肤控件.

例如去网络上下个:ActiveSkin 4.3.exe
[解决办法]
引用:
menubackcolor这个属性正常讲在代码里是只读的(a readonly property),这个可能和PB控制菜单的机制有关。 
但也不是绝对的:),可以通过edit source一个菜单,直接修改其源代码来实现。通过查看源代码可以发现每个菜单项都会有一个menubackcolor属性的定义,一般对第一个菜单的属性的修改,可以导致整个菜单的属性的修改。我们先来定义一个全局的long型变量gl_color=rgb(255,0,0),然后在edit source里将menubackcolor= gl_color,刚…

对,我就是这么改得,呵呵
[解决办法]
学习一下!
[解决办法]
mark
[解决办法]
全局变量的方法的话,即使菜单创建了,我想也可以通过先hide()再show来改变。
至于你说的状态条,如果我没猜错,也就是说你用了ms 的common control的话,
通常的方法就是向你的控件发消息,不过帮你翻了一下只有ie的status bar才支持
SB_SETBKCOLOR这个消息。。。。so,use pfc。

[解决办法]
引用:
再问个问题,状态条的颜色如何修改?我用的状态条是系统DLL中的一个类,用扩展类做的一个状态条


你说的这个状态条是怎么实现的,是msconmctl.ocx里的状态条吗?
[解决办法]
学习中  太强了
[解决办法]
这个可以通过 GETCLIENTRECT,GETDC,CREATESOLIDBRUSH,FILLRECT等API,然后在控件的PAIN(PBM_PAIN)事件里重新绘制背景色,
但这样控件原来的外观就没有了,很麻烦,不如自己用用户自定义控件写一个来的快和方便。
[解决办法]
真好,我也接点分


[解决办法]
过来长长见识
[解决办法]
自己写个自定义的菜单对象,这样就好些了
[解决办法]
jf
[解决办法]
学习
[解决办法]
谢谢了。。。又涨了知识。。。。

热点排行
Bad Request.