PocketPC2003上使用SHCreateMenuBar进行菜单显示的问题解决

 在PocketPc2003上采用SHCreateMenuBar建立菜单,代码如下

 SHMENUBARINFO mbi; 
 memset(&mbi, 0, sizeof(SHMENUBARINFO));
 mbi.cbSize     = sizeof(SHMENUBARINFO);
 mbi.hwndParent = m_hWnd;
 mbi.nToolBarId = IDR_MAIN_MENUBAR;
 mbi.hInstRes   = hInstApp;
 if (!SHCreateMenuBar(&mbi))
 {
  m_hWndMenuBar = NULL;
 }
 else
 {
  m_hWndMenuBar = mbi.hwndMB;
 } 
不管怎么修改在菜单条上显示的菜单总是不正确的。最后仔细的研究SHMENUBARINFO这个结构。发现其中有个dwFlags 没有进行设置,

This member contains one of the following values.

FlagDescription
SHCMBF_COLORBK

Sets the background color value for the menu bar.

采用 clrBk 值去设置菜单的背景颜色

SHCMBF_EMPTYBAR

Creates an empty menu bar.

建立一个空的菜单条

SHCMBF_HIDDEN

Creates the menu bar initially hidden.

建立一个菜单条初始状态为隐身

SHCMBF_HIDESIPBUTTON

Creates the menu bar with no Input Panel button.

建立一个没有输入面板按钮的菜单条

SHCMBF_HMENU

Specifies an hmenu value for a resource rather than for toolbar information.

指定hmenu的值为菜单资源而不是菜单条信息

对于dwFlags参数可以采用|符号进行运算,例如。菜单中需要指定自己的菜单资源并且不需要输入面板按钮。则你可以把dwFlags=SHCMBF_HMENU|SHCMBF_HIDESIPBUTTON

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值