解决方案 »
- 我的程序Debug运行时总是得到"The Value of ESP was not properly saved across a function call...."错误,但是Release就没有,我没有用DLL啊
- 在线等,请高手指点一下关于CopyFile失败时返回的错误码为1784的问题
- 我写一个控件放到网站网页上,让用户作为activex控件,用户能否下载控件,并脱离网页使用?
- 如何在切分窗体中去掉一个窗体的水平滚动条?
- 求一个完整的代码:从avi中去一个帧,并且显示出来!!!
- 关于短信的问题,请大家指教!
- 一个接口方面的问题
- 求教!有关Radio Button(单选按钮)的问题……
- 请问POSITION是什么类型?
- 局域网内指定IP出现“该静态IP地址已经使用”,原理如何,如何编程实现。
- <文件说明已停止工作>是怎么回事?
- VC2008中如何动态改变菜单的显示文本!
那个东西必须用的,是visual studio 2008 的一个补丁,可以直接生成VC界面的框架,属于官方合理程序,我们需要VC界面下的信息输出框,目前就是想知道跟它自动生成的哪句代码冲突了,根据经验应该是跟int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)里的代码冲突,但由于不精通VC,找不到冲突的语句。
这样获取HMENU hMenu = m_wndMenuBar.GetHMenu();
CMenu* pMenu = CMenu::FromHandle(hMenu);
m_wndMenuBar 是CMainFrame的成员,类型是CMFCMenu。
把这两句代码直接加进去还是替换掉程序里的语句,提示“m_wndMenuBar”: 未声明的标识符,m_wndMenuBar要自己定义吗?
CMenu* CMainFrame::GetMainMenu()
{
HMENU hMenu = m_wndMenuBar.GetHMenu();
CMenu* pMenu = CMenu::FromHandle(hMenu);
return pMenu;
}在CmyDialog里,调用这个函数,来代替GetMenu()
我是这样写的:
CMFCMenuBar m_wndMenuBar;
HMENU hMenu = m_wndMenuBar.GetHMenu();
CMenu* pMenu = CMenu::FromHandle(hMenu);然后用pMenu 替换掉程序里原来的menu.m_hMenu
是这样吗?
可是这样提示的有未处理异常和访问冲突跟我以前的程序是一样的。
不行啊!提示:1>e:\visual studio 2008\projects\laserdetection4\laserdetection4\mydialog.cpp(76) : error C2227: “->InsertMenuW”的左边必须指向类/结构/联合/泛型类型
1> 类型是“'unknown-type'”
1>e:\visual studio 2008\projects\laserdetection4\laserdetection4\mydialog.cpp(76) : error C3861: “GetMainMenu”: 找不到标识符
改为((CMainFrame*)AfxGetMainFrame())->GetMainMenu()->InsertMenuW(3, MF_POPUP|MF_BYPOSITION, (UINT)menu.m_hMenu, (LPCTSTR)(CString)m_vip1);
记得在mydialog.cpp里,加CMainFrame的头文件
改了还是不行,头文件一直有加,现在提示:
1>e:\visual studio 2008\projects\laserdetection4\laserdetection4\mydialog.cpp(77) : error C2227: “->GetMainMenu”的左边必须指向类/结构/联合/泛型类型
1> 类型是“'unknown-type'”
1>e:\visual studio 2008\projects\laserdetection4\laserdetection4\mydialog.cpp(77) : error C2227: “->InsertMenuW”的左边必须指向类/结构/联合/泛型类型
1>e:\visual studio 2008\projects\laserdetection4\laserdetection4\mydialog.cpp(77) : error C3861: “AfxGetMainFrame”: 找不到标识符
我把问题解决了,给前面加GetParent()调用,
GetParent()->GetMenu()->InsertMenuW(3, MF_POPUP|MF_BYPOSITION, (UINT)menu.m_hMenu, (LPCTSTR)(CString)m_vip1);
以前用过这个方法,不知道为啥没有成功,现在试却成功了,不过还是谢谢你,CSDN就把分给你好了,以后VC有问题再向你请教