在windows mobile的最底的工具栏上创建按钮或者Menu。这里说的按钮是另一种Menu,即是非popup的Menu,且没有子item。
首先当然是在resource里加一个Menu了。打开这个Menu资源,横向上可以加2个,也可以加一个。如果是加二个,那么就是左右各一个,分别代表左右软键;如果是加一个则是在左边,代表左软键;如果是加3个?那么就是与普通的窗口上的差不多了,从左往右挨着排列。
创建代码如下:
SHMENUBARINFO mbi;
ZeroMemory(&mbi, sizeof(SHMENUBARINFO));
mbi.cbSize = sizeof(SHMENUBARINFO);
mbi.hwndParent = m_hWnd;
mbi.nToolBarId = IDR_MENU_MAIN;
mbi.hInstRes = AfxGetResourceHandle();
mbi.dwFlags |= SHCMBF_HMENU | SHCMBF_HIDESIPBUTTON ;
if (SHCreateMenuBar(&mbi))
{
m_hwndMb = mbi.hwndMB;
//获取横向上的第二个Menu的句柄
TBBUTTONINFO tbbi = {0};
tbbi.cbSize = sizeof(tbbi);
tbbi.dwMask = TBIF_LPARAM | TBIF_BYINDEX;
::SendMessage(g_hwndMb, TB_GETBUTTONINFO,1, (LPARAM)&tbbi);
m_hMenu = (HMENU)tbbi.lParam;
}
注意:这里的SendMessage是发送消息给MenuBar的,消息是TB_GETBUTTONINFO,从toolbar中获取按钮的信息,是第一个按钮[横向第二个menu]。
在帮助文档的Toolbar Controls Messages下,可以看到所有的TB_开头的消息。
当然,一般对menu的操作还有InsertMenu、DeleteMenu、AppendMenu、CreateMenu、RemoveMenu,这里就不一一介绍了,可参考MS的help文档。
还有就是menu的item的点击事件,可以参考前面的一篇文章,叫《对话框中增加Menu》。