:当menu项太多时,会出现卷滚,不知在哪儿能重绘此卷滚
请教各位:当menu项太多时,会出现卷滚,不知在哪儿能重绘此卷滚?
请教各位:
当menu项太多时,会出现卷滚,现想改变其卷滚的背景颜色,不知在哪个消息里画?请各位高人多多指点。在下感激不尽。
------解决方案--------------------
用SPY++ 自己看消息吧!
------解决方案--------------------
是自画菜单的话就要DrawItem.
------解决方案--------------------
很少到****,我也遇到了技术问题,溜达了一下,看到你的问题也算有缘,帮你解答
一般来说,Item的绘制在DrawItem()里面完全实现,但Menu的背景例外,可以通过屏蔽
WM_DRAWITEM消息测试验证。但微软提高了一个函数接口SetMenuInfo(),它可以设置一些
菜单的信息,其中包括背景颜色。
你可以粘贴以下代码则可:
CMenu *pMenu = GetMenu()-> GetSubMenu(4);
MENUINFO mi;
mi.fMask = MIM_BACKGROUND;
static CBrush br(RGB(255,0,0));
mi.hbrBack = (HBRUSH)br.m_hObject;
mi.cbSize = sizeof(MENUINFO);
SetMenuInfo(pMenu-> m_hMenu,&mi);
注意:
1.Brush必须是全局的,为了方便,我定义了一个static类型;
2.一般你在VC6下调用以上代码,会提示没有定义MENUINFO 这个结构,
所以你还需要在stdafx.h文件的前面加上:
#define WINVER 0x500
至此,基本可以实现你的需求了,Have fun...^_^
请教各位:
当menu项太多时,会出现卷滚,现想改变其卷滚的背景颜色,不知在哪个消息里画?请各位高人多多指点。在下感激不尽。
------解决方案--------------------
用SPY++ 自己看消息吧!
------解决方案--------------------
是自画菜单的话就要DrawItem.
------解决方案--------------------
很少到****,我也遇到了技术问题,溜达了一下,看到你的问题也算有缘,帮你解答
一般来说,Item的绘制在DrawItem()里面完全实现,但Menu的背景例外,可以通过屏蔽
WM_DRAWITEM消息测试验证。但微软提高了一个函数接口SetMenuInfo(),它可以设置一些
菜单的信息,其中包括背景颜色。
你可以粘贴以下代码则可:
CMenu *pMenu = GetMenu()-> GetSubMenu(4);
MENUINFO mi;
mi.fMask = MIM_BACKGROUND;
static CBrush br(RGB(255,0,0));
mi.hbrBack = (HBRUSH)br.m_hObject;
mi.cbSize = sizeof(MENUINFO);
SetMenuInfo(pMenu-> m_hMenu,&mi);
注意:
1.Brush必须是全局的,为了方便,我定义了一个static类型;
2.一般你在VC6下调用以上代码,会提示没有定义MENUINFO 这个结构,
所以你还需要在stdafx.h文件的前面加上:
#define WINVER 0x500
至此,基本可以实现你的需求了,Have fun...^_^