我用GetMenu(),返回的是空,vc2008 和vc6.0不一样吗?怎么获取不了呢?有没有什么好的解决办法!
解决方案 »
- 难道说可以多线程并行操作WSA_FLAG_OVERLAPPED标志的套接字
- 我的一个客户端TCP程序,要同时与100多个IP进行TCP通讯,我该选什么样的解决方案比较好?
- 高手救命:用writefile向gdb写命令为什么它不执行?
- 请问:"在其他机子上登陆服务器,网页中ACTIVE为何不能显示"
- 关于Windows编程的基础问题
- IOCP中,服务器端主动执行closesocket后,GetQueuedCompletionStatus还是不返回
- 在VC6.0中是否无法编译通过普通类中的模板成员函数,详见内:
- 请问如何判断CArchive的文件已经结束了
- 谁有关于zlib的文件zip和unzip的使用源码
- 如何在ATL EXE中添加STL 和MFC支持
- 求助!急需解决Visual Studio 2008 单文档 动态添加菜单冲突问题!
- 怎么在VC中实时显示进度条
2楼...
void C修改菜单View::On32771()
{
// TODO: 在此添加命令处理程序代码
//动态修改菜单:
// Get the Main Menu
CMenu* pMainMenu = AfxGetMainWnd()->GetMenu();
CMenu* pSubMenu = NULL;
CString menustr,numstr;
int i=0,j=0,k=0;
for (i=0; i<(int)pMainMenu->GetMenuItemCount(); i++)
{
pSubMenu = pMainMenu->GetSubMenu(i);
if (pSubMenu)
{
for (int j=0;j<pSubMenu->GetMenuItemCount();j++)
{
k++;
numstr.Format(_T("%d"),k);
pSubMenu->GetMenuStringW(j,menustr,MF_BYPOSITION);//通过 序号来获取
MessageBox(menustr,_T("修改前的菜单内容:"),MB_OK);
menustr=_T("修改的菜单名字")+numstr;
pSubMenu->ModifyMenuW(j,MF_BYPOSITION,0,menustr);
MessageBox(menustr,_T("修改后的菜单内容:"),MB_OK);
}
}
}
}楼主可以试一下在 VC2008 里可否实现,我觉得应该是可以的。
UINT nPosition,
UINT nFlags,
UINT_PTR nIDNewItem = 0,
LPCTSTR lpszNewItem = NULL
);
CMenu m_Menu;
m_Menu.CreatePopupMenu();
GetParent()->GetMenu()->AppendMenu(MF_POPUP,(UINT)m_Menu.m_hMenu,"sunxin");
GetParent()->DrawMenuBar();