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.

Flag Description
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

 

你可能感兴趣的:(null,input,menu)