Nehe OpenGL AppWizards with vs 2008

来源:互联网 发布:网络拓扑软件 编辑:程序博客网 时间:2024/05/15 08:25
原本只想把原先的项目转到vs 2008上面去完善,于是去了nehe的主页找了个appwizards在另外一台电脑上打开,vs 2003,装好模板,运行完,生成好所有文件后,拿到了工作站上面,用vs 2008打开。f7直接编译,然后开始debug。一些问题这里说下。1 关于glaux.h 网上很多人讨论过这个,于是换了libkernel32.lib user32.lib gdi32.lib advapi32.lib64位也一样。2 关于字符串转换。_T3 关于CMainFrame的构造函数 nehe生成的mainfram.h中,CMainFrame的构造函数是public的,08是protected。这个的问题源于MyApp.cpp中,InitInstance()函数在nehe wizards中如下BOOL COGLTemplateApp::InitInstance(){// Standard initialization...// To create the main window, this code creates a new frame window// object and then sets it as the application's main window object.m_pMainWnd = NULL;CMainFrame* pFrame = new CMainFrame;if (!pFrame->Create(NULL,"MFC OpenGL"))return FALSE;m_pMainWnd = pFrame;pFrame->ShowWindow(m_nCmdShow);pFrame->UpdateWindow();return TRUE;}显然,他要在App下面调用MainFrame。不过上面这几行代码有些奇怪。我屡思不得其解。如果这样代替BOOL COGLTemplateApp::InitInstance(){// Standard initialization...m_pMainWnd->ShowWindow(m_nCmdShow);m_pMainWnd->UpdateWindow();return TRUE;}为什么他要舍近求远的重新做一个pFrame呢。4 该好doc类,修改menu。copy代码,添加消息映射函数。完工others:如果InitInstance()像nehe那样,显示不出menu。这和doc类的调用顺序有关。View类可以不用。那显示单张dcm怎么办?DoModal()一个对话框,然后直接将转换好位图放进去,还可以添加控件调整窗位窗宽,两全。