在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