您的位置:首页 > 其它

关于windows mobile的MFC DIALOG模式下菜单问题

2008-12-18 17:07 288 查看
最后,希望有真正的高手(有这方面经验的)给我讲解一下,不胜感激!

系统:Windows mobile

工具:VS2005

语言:C++ , MFC

点击按钮改名字

假设:左下角叫“取消”,右下角角“菜单”,“菜单“中有4个小项,其中有一项叫 ”A“,我想点击”A“,这时把”A“改成”B“。

在mobile下,菜单是这么加入的:

m_wndCommandBar.InsertMenuBar(IDR_MENU1)

如何点击pop菜单中某一项然后改名字呢?

// 获得子菜单句柄

HWND hwndMB = SHFindMenuBar(m_hWnd);
HMENU hMenu = (HMENU)::SendMessage(hwndMB, SHCMBM_GETSUBMENU, 0, 0);

//在菜单中寻找两次,找到要修改名字的那一项(假设为ID_MENU_A),下面是例子

CMenu mnu;
HMENU hmnu = m_wndCommandBar.GetMenu();
mnu.Attach(hmnu);
int pos = FindMenuItem( &mnu, L"菜单");
if (pos == -1)
return;
// 获得你点击那一项的位置
CMenu* submenu = mnu.GetSubMenu(pos);
FindMenuItem(submenu, _T("A"));
ModifyMenu( hMenu, pos,MF_STRING|MF_BYPOSITION, ID_MENU_A,_T("B"));
mnu.Detach();

注:

1.只有用MF_BYPOSITION 时使用 位置才好使!

2.实际名字没有改! ---如果你想改回名字,还要FindMenuItem(submenu, _T("A"));
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: