InitInstance里dlg.DoModal()失败?怎样重置VC的设置?

qqwweerraahh 2009-11-20 02:50:49
不知道哪设置错了,界面上只要加上了WebBrowser控件,程序就不运行了,跟踪了一下,是在InitInstance()里面的int nResponse = dlg.DoModal();这句出了问题,不知道怎么办,我卸载后重装了vc,但是设置好像没变,怎样重置vc的设置啊?
...全文
238 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
qqwweerraahh 2009-11-20
  • 打赏
  • 举报
回复
5楼呵呵
twins222 2009-11-20
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 zcnvnv 的回复:]
但不知道为什么,以前一直都没有问题的,但就从昨天开始,不知道动了哪,就不行了,现在终于解决了
谢谢各位
[/Quote]
如何解决的啊?是用我提供的方法 还是其他方法?
qqwweerraahh 2009-11-20
  • 打赏
  • 举报
回复
但不知道为什么,以前一直都没有问题的,但就从昨天开始,不知道动了哪,就不行了,现在终于解决了
谢谢各位
twins222 2009-11-20
  • 打赏
  • 举报
回复
解决方法:
VC设置如下:
Project->settings->C/C++->Optimizations->Disable(Debug)
qqwweerraahh 2009-11-20
  • 打赏
  • 举报
回复
哈哈,我加了一个AfxEnableControlContainer();就正常啦
在这里找到的:http://topic.csdn.net/t/20050914/02/4267856.html
老吴笔记 2009-11-20
  • 打赏
  • 举报
回复
你跟进dlg时面看看啊,看看在哪个地方出的问题
nintendo_dskay 2009-11-20
  • 打赏
  • 举报
回复
WebBrowser需要初始化
在InitInstance中添加
CoInitialize(NULL);
AfxEnableControlContainer();
江川 2009-11-20
  • 打赏
  • 举报
回复
你试着初始化com试试,一般加入这些是没有问题的,但是加入richedit就需要afxricheditinit初始化才会运行界面。
要不你就跟进去看看到底哪里出问题了。
qqwweerraahh 2009-11-20
  • 打赏
  • 举报
回复
AfxOleInit调用成功,但还是不行

我这没有找到devenv.exe,谷歌搜索也没有找到,楼上能否提供一个?我邮箱zcnvnv[at]163.com ,谢谢啦
StarsunYzL 2009-11-20
  • 打赏
  • 举报
回复
开始菜单 - Visual Studio - Visual Studio Tools - Visual Studio命令提示,输入下面的命令重置VC:
devenv.exe /ResetSettings
  • 打赏
  • 举报
回复
InitInstance函数中最先调用一次 AfxOleInit试试看
动态加载GIF动画 VC 实现 include "stdafx.h" #include "TransparentGif.h" #include "TransparentGifDlg.h" #ifdef _DEBUG #define new DEBUG_NEW #endif // CTransparentGifApp BEGIN_MESSAGE_MAP(CTransparentGifApp, CWinAppEx) ON_COMMAND(ID_HELP, &CWinApp::OnHelp) END_MESSAGE_MAP() // CTransparentGifApp 构造 CTransparentGifApp::CTransparentGifApp() { // TODO: 在此处添加构造代码, // 将所有重要的初始化放置在 InitInstance 中 } // 唯一的一个 CTransparentGifApp 对象 CTransparentGifApp theApp; // CTransparentGifApp 初始化 BOOL CTransparentGifApp::InitInstance() { // 如果一个运行在 Windows XP 上的应用程序清单指定要 // 使用 ComCtl32.dll 版本 6 或更高版本来启用可视化方式, //则需要 InitCommonControlsEx()。否则,将无法创建窗口。 INITCOMMONCONTROLSEX InitCtrls; InitCtrls.dwSize = sizeof(InitCtrls); // 将它设置为包括所有要在应用程序中使用的 // 公共控件类。 InitCtrls.dwICC = ICC_WIN95_CLASSES; InitCommonControlsEx(&InitCtrls); CWinAppEx::InitInstance(); AfxEnableControlContainer(); // 标准初始化 // 如果未使用这些功能并希望减小 // 最终可执行文件的大小,则应移除下列 // 不需要的特定初始化例程 // 更改用于存储设置的注册表项 // TODO: 应适当修改该字符串, // 例如修改为公司或组织名 SetRegistryKey(_T("应用程序向导生成的本地应用程序")); CTransparentGifDlg dlg; m_pMainWnd = &dlg; INT_PTR nResponse = dlg.DoModal(); if (nResponse == IDOK) { // TODO: 在此放置处理何时用 // “确定”来关闭对话框的代码 } else if (nResponse == IDCANCEL) { // TODO: 在此放置处理何时用 // “取消”来关闭对话框的代码 } // 由于对话框已关闭,所以将返回 FALSE 以便退出应用程序, // 而不是启动应用程序的消息泵。 return FALSE; }
VC做的聊天小程序 // Chat.cpp : 定义应用程序的类行为。 // #include "stdafx.h" #include "Chat.h" #include "ChatDlg.h" #ifdef _DEBUG #define new DEBUG_NEW #endif // CChatApp BEGIN_MESSAGE_MAP(CChatApp, CWinApp) ON_COMMAND(ID_HELP, &CWinApp::OnHelp) END_MESSAGE_MAP() // CChatApp 构造 CChatApp::CChatApp() { // 支持重新启动管理器 m_dwRestartManagerSupportFlags = AFX_RESTART_MANAGER_SUPPORT_RESTART; // TODO: 在此处添加构造代码, // 将所有重要的初始化放置在 InitInstance 中 } // 唯一的一个 CChatApp 对象 CChatApp theApp; // CChatApp 初始化 BOOL CChatApp::InitInstance() { // 如果一个运行在 Windows XP 上的应用程序清单指定要 // 使用 ComCtl32.dll 版本 6 或更高版本来启用可视化方式, //则需要 InitCommonControlsEx()。否则,将无法创建窗口。 INITCOMMONCONTROLSEX InitCtrls; InitCtrls.dwSize = sizeof(InitCtrls); // 将它设置为包括所有要在应用程序中使用的 // 公共控件类。 InitCtrls.dwICC = ICC_WIN95_CLASSES; InitCommonControlsEx(&InitCtrls); CWinApp::InitInstance(); if(!AfxSocketInit()) { AfxMessageBox(_T("加载套接字库失败!")); return FALSE; } AfxEnableControlContainer(); // 创建 shell 管理器,以防对话框包含 // 任何 shell 树视图控件或 shell 列表视图控件。 CShellManager *pShellManager = new CShellManager; // 标准初始化 // 如果未使用这些功能并希望减小 // 最终可执行文件的大小,则应移除下列 // 不需要的特定初始化例程 // 更改用于存储设置的注册表项 // TODO: 应适当修改该字符串, // 例如修改为公司或组织名 SetRegistryKey(_T("应用程序向导生成的本地应用程序")); CChatDlg dlg; m_pMainWnd = &dlg; INT_PTR nResponse = dlg.DoModal(); if (nResponse == IDOK) { // TODO: 在此放置处理何时用 // “确定”来关闭对话框的代码 } else if (nResponse == IDCANCEL) { // TODO: 在此放置处理何时用 // “取消”来关闭对话框的代码 } // 删除上面创建的 shell 管理器。 if (pShellManager != NULL) { delete pShellManager; } // 由于对话框已关闭,所以将返回 FALSE 以便退出应用程序, // 而不是启动应用程序的消息泵。 return FALSE; }

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧