如何在控制台程序中使用MFC
1、修改项目属性,使项目能够使用MFC。
单击菜单【调试】-【XXX 属性】,在弹出的对话框的左侧选择【高级】,然后在右侧【MFC 的使用】后选择【在共享DLL中使用MFC】。


2、添加并修改头文件,引入mfc类库。
如图,添加一个头文件(这里取名为“usemfc.h”),修改为以下代码。
#pragma once
#include <SDKDDKVer.h>
#define _ATL_CSTRING_EXPLICIT_CONSTRUCTORS // 部分 CString 构造函数将是显式的
#define _AFX_NO_MFC_CONTROLS_IN_DIALOGS // 移除对话框中的 MFC 控件支持
#ifndef VC_EXTRALEAN
#define VC_EXTRALEAN // 从 Windows 头文件中排除极少使用的内容
#endif
#include <afx.h>
#include <afxwin.h> // MFC 核心组件和标准组件
#include <afxext.h> // MFC 扩展
#ifndef _AFX_NO_OLE_SUPPORT
#include <afxdtctl.h> // MFC 对 Internet Explorer 4 公共控件的支持
#endif
#ifndef _AFX_NO_AFXCMN_SUPPORT
#include <afxcmn.h> // MFC 对 Windows 公共控件的支持
#endif // _AFX_NO_AFXCMN_SUPPORT



3、包含这个头文件后,你的项目就支持MFC了,这里我通过一个简单的程序演示效果。
但是要注意,使用某些MFC功能时,需要初始化MFC,初始化方法如下面代码中黑体字所示。
#include "usemfc.h"
#include <iostream>
using namespace std;
int main()
{
// MFC初始化
if (!AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0))
return 1;
CFileDialog dlg(TRUE);
CString strPath;
if (dlg.DoModal() == IDOK)
{
strPath = dlg.GetPathName();
cout << "您选择的文件:" << strPath << endl;
}
return 0;
}

4、测试效果如下图所示。


声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
阅读量:137
阅读量:23
阅读量:188
阅读量:84
阅读量:64