MFC运行在VS2010中程序中报错。。。

[复制链接]
查看11 | 回复3 | 2011-3-14 22:43:11 | 显示全部楼层 |阅读模式
我写单文档多视图切换程序时候,在VC6.0里面写通过了,但是在VS2010中会报错
我试过讲VC6.0里面粘贴过来,但是会报错
BOOL Cpet_hospitalApp::InitInstance() 中添加如下代码
m_pFormView=new CMyFormView();
CCreateContext context;
context.m_pCurrentDoc=((CMainFrame*)m_pMainWnd)->GetActiveDocument();


UINT uid=AFX_IDW_PANE_FIRST +1;
CRect rect;
m_pFormView->Create(NULL,NULL,WS_CHILD,rect,m_pMainWnd,uid,&context);
会报错 m_lpszTemplateName 0x0000013aconst wchar_t *
求高手指点啊。。。。。
上面问题已经解决
LONG lId = GetWindowLong(m_pFormView->m_hWnd, GWL_ID);
::SetWindowLong(((CMainFrame*)m_pMainWnd)->GetActiveView()->m_hWnd, GWL_ID,
GetWindowLong(((CMainFrame*)m_pMainWnd)->m_hWnd, GWL_ID));
::SetWindowLong(m_pFormView->m_hWnd, lId, GWL_ID);
::ShowWindow(((CMainFrame*)m_pMainWnd)->GetActiveView()->m_hWnd, SW_HIDE);
((CMainFrame*)m_pMainWnd)->SetActiveView(m_pFormView);
((CMainFrame*)m_pMainWnd)->RecalcLayout();
::ShowWindow(m_pFormView->m_hWnd, SW_SHOWMAXIMIZED);
这是显示新视图的代码。
其中
::SetWindowLong(((CMainFrame*)m_pMainWnd)->GetActiveView()->m_hWnd, GWL_ID,
GetWindowLong(((CMainFrame*)m_pMainWnd)->m_hWnd, GWL_ID));
::SetWindowLong(m_pFormView->m_hWnd, lId, GWL_ID);
是什么意思啊?

回复

使用道具 举报

千问 | 2011-3-14 22:43:11 | 显示全部楼层
首先VC6默认的是非Unicode而VS2010是Unicode的,你能保证所有的设置,预定义都和VC6的一样么?况且VS2010修改了许多东西。你还是自己用VS2010建一个同名的工程,自己对照地方加代码最保险.
回复

使用道具 举报

千问 | 2011-3-14 22:43:11 | 显示全部楼层
答案:思想是生命的奴隶,生命是时间的弄人
回复

使用道具 举报

千问 | 2011-3-14 22:43:11 | 显示全部楼层
有点高深你还是找专业的人给你解答吧
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则