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

 

 

最后,希望有真正的高手(有这方面经验的)给我讲解一下,不胜感激!

 

 

系统: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"));

 

 

 

 

你可能感兴趣的:(关于windows mobile的MFC DIALOG模式下菜单问题)