[翻译]-Windows CE 程序设计 (3rd 版)--5.2 公共控件(十一)

创建菜单条                                                                                                    翻译:tellmenow
要创建菜单条,可以调用BOOL SHCreateMenuBar (SHMENUBARINFO *pmb);函数中唯一的参数是一个SHMENUBARINFO结构的的地址,该结构定义如下:
typedef struct tagSHMENUBARINFO {
DWORD cbSize;
HWND hwndParent;
DWORD dwFlags;
UINT nToolBarId;
HINSTANCE hInstRes;
int nBmpId;
int cBmpImages;
HWND hwndMB;
COLORREF clrBk;
}SHMENUBARINFO;

必须使用SHMENUBARINFO结构的尺寸来设置cbSize域。hwndParent设置为创建菜单条的窗口句柄。dwFlags则设置成三个标志的组合:
SHCMBF_EMPTYBAR 用来创建没有菜单的菜单条
SHCMBF_HIDDEN  创建一个菜单条,初始状态为隐藏
SHCMBF_HIDESIPBUTTON 创建一个菜单,其右边没有SIP按钮
SHCMBF_COLORBK 指出clrBk域中包含有效的颜色,在填充菜单条背景时使用。
SHCMBF_HMENU  指出资源是菜单资源,而不是菜单条资源

除非指定了SHCMBF_EMPTYBAR标志,否则你必须将nToolBarId域设置成描述菜单条中菜单和按钮结构的资源。除非使用了SHCMBF_HMENU标志,否则该资源并不是简单的菜单资源。该资源是一个普通资源数据快和菜单资源的组合,用来一起描述菜单条上的菜单以及按钮位置。我将在本节后面描述该资源。

接下来是hInstRes域,应该设置成包含菜单条资源的模块的实例句柄。随后的两个域,nBmpId和cBmpImages,描述了用于定义菜单条上按钮外观的位图图片。如果菜单条上有图形按钮,则可以将nBmpId设置成位图资源ID。该位图应该是16像素高,位图中的每个图片应该是16像素宽。所以如果位图中有三个图片,那么位图应该是48像素宽,16像素高。cBmpImages域设置成位图中图片的数量。为了更有艺术性,请参考最新的应用程序指导,看看如何将位图同其它部分搭配的更恰当。

如果菜单条创建成功,SHCReateMenuBar函数返回TRUE,这时候,hwndMB域中将包含菜单条句柄。您需要保存这个窗口句柄,因为一旦创建完成后,就没有其它方式可以确定菜单条句柄了。 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值