最后,希望有真正的高手(有这方面经验的)给我讲解一下,不胜感激!
系统: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"));