在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》。