-
VS创建MFC工程
2011-09-13 15:07:191.新建一个工程 ...2.选择工程的类型 MFCApplication 3.在MFC 向导里可选择三种应用类型:单文档、多文档和基于对话框的 勾选上Use Unicode libraries就能使用汉字等Unicode编码 -
VS2015创建mfc工程
2020-03-31 23:48:10step1:打开VS2015 step2: : 然后填上文件目录,工程名即可。 step3:完成上述操作后会显示 step4:点下一步会出现: 详细说明下以下的选项: 单文档应用程序运行时是一个单窗口界面。 项目类型即...step1:打开VS2015
step2:
:
然后填上文件目录,工程名即可。
step3:完成上述操作后会显示
step4:点下一步会出现:
详细说明下以下的选项:
单文档应用程序运行时是一个单窗口界面。
项目类型即工程风格。
MFC的使用:
若选择第一个选项,MFC 的类会以动态链接库的方式访问,所以我们的应用程序本身就会小些,但是发布应用程序时必须同时添加必要的动态链接库,以便在没有安装 VS2010 的机子上能够正常运行程序。
若选择 第二个选项(在静态库中使用MFC), MFC 的类会编译到可执行文件中,所以应用程序的可执行文件要比上种方式大,但可以单独发布,不需另加包含 MFC 类的库。
step5:
复合文档支持:可以通过它向应用程序加入 OLE 支持,指定 OLE 选项的复合文档类型。本例不需要 OLE 特性,使用默认值-------无 。点下一步按钮。
step6:
step7:
无:忽略所有的数据库支持;
仅头文件:只包含定义了数据库类的头文件,但不生成对应特定表的数据库类或视图类;
不提供文件支持的数据库视图:创建对应指定表的一个数据库类和一个视图类,不附加标准文件支持;
提供文件支持的数据库视图:创建对应指定表的一个数据库类和一个视图类,并附加标准文件支持。
step8:
此界面可以设置有无最大化按钮、最小化按钮、系统菜单和初始状态栏等。还可以选择使用菜单栏和工具栏
生成简单的应用程序还是使用 ribbonstep9:
可以设置的高级特性包括有无打印和打印预览等。在最近文件列表上的文件数项可以设置在程序界面的文件菜单下面最近打开文件的个数。我们仍使用默认值。点―Next‖按钮。
step10:
一个视图类、一个应用类、一个文档类和一个主框架窗口类。
step11:
然后就eventually出现了一个界面
-
安装VS2019、MFC,并创建MFC工程文件,查看工程信息
2021-02-16 18:56:53安装VS2019、MFC,并创建MFC工程文件,查看工程信息安装VS2019、MFC、创建第一个MFC文件
1、安装VS2019
vs2019已经在4月2日正式发布,vs2019和vs2017一样强大,项目兼容,不用互相删除,而且C/C++,Python,F#,ios,Android,Web,Node.js,Azure,Unity,HTML,JavaScript等开发都可以执行。
下载网址 VS下载① 点击链接可以直接到达下载页面,如下图,选择社区版本,点击“免费下载”;
跳转到下面的页面,说明正在下载;
② 下载完就可以点击下载的exe文件,找到下载的具体位置。
③ 找到下载好的文件,双击进行安装:
④ 会显示这个界面,点击“继续”,等待安装程序安装完成
等待加载完成
⑤ 安装程序下载安装验证完毕,将会提示进入这个界面 ,这里仅展示安装C++功能;
这里主要有四项选项卡:【工作负载】、【单个组件】、【语言包】、【安装位置】- 【工作负载】这里我们可以勾选【使用C++的桌面开发】和【Visual Studio 扩展开发】
- 【单个组件】可以不用管,会自行勾选;【工作负载】里勾选了项目相关的组件、也会在单个组件中自行勾选上的;
- 注意:这里在勾选【使用C++的桌面开发】后,在右边【安装详细信息】中勾选【适用于最新v142生成工具的C++ MFC】,后面就可以不用再安装MFC了。
【语言包】有很多选项,这里默认是中文(简体);
【安装位置】可以不用改,默认保存在C盘;直接点击右下角进行安装
安装时间很长,喝杯咖啡耐心等待吧!
⑥ 安装完成的界面如下图,此时就可以点击启动打开VS2019啦~
这里选择自己喜欢的样式,第一次启动会比较慢一点;启动的等待界面如下:
进入主界面,可以选择【打开最近项】,也可以【创建新项目】,或者直接点击右下角【继续但无需代码】。
⑦ 这里点击【继续但无需代码】:
这样就安装成功啦,进入VS2019的空界面
2、VS安装MFC,并创建MFC工程文件
注意:如果是安装上面的方式,勾选【使用C++的桌面开发】后,在右边【安装详细信息】中勾选【适用于最新v142生成工具的C++ MFC】的话,这里安装MFC的步骤就不用再看了~
① 在开始的菜单中,找到【Visual Studio Installer】,点击鼠标右键,选择【更多】中的【以管理员身份运行】。
接着在VS2019 中点击【修改】
在右边【安装详细信息】中,勾选【使用C++的桌面开发】中的【适用于最新v142生成工具的C++ MFC】,安装即可
安装完成后,点击启动就可以了
然后我们可以新建MFC工程文件试一下效果,点击【创建新项目】
选择【MFC应用】,点击【下一步】
给MFC工程修改名称,这里我设置的是Test,保存的路径建议存放在D盘或E盘,默认的路径不好找,后期不方便查找、修改文件
在【应用程序类型】中选择单个文档,其他的也可以,根据自己的需求进行选择;
在【项目样式】中选择MFC标准,然后点击【完成】,这样就创建好一个MFC工程啦!
直接点击Ctrl+F5,或者在【调试】窗口中点击【开始执行】选项。若未报错直接弹出最后一图则说明安装成功。
运行后可以生成可视化窗口,之后如果绘制图形、就体现在窗口的客户区中。
3、查看工程信息
MFC文件的工程信息,有三个选项卡:解决方案管理器、类视图、资源视图。
【解决方案管理器】:包含了新建工程的所有文件,主要有:头文件、资源文件和源文件;- 头文件起到声明的作用;
- 源文件是用来定义对象、实现函数。
【类视图】:显示应用程序定义的类,以及类的成员函数;
- CAboutDlg帮助类,同于说明这个工程的开发信息;
- CMainFrame主框架类;
- CTestApp应用程序入口(C代表class类,是我们自己定义的工程名称,App指的是application应用程序);
- CTestDoc文档类,用来管理、存放数据(Doc指的是document文档);
- CTestView用来将文档中的数据可视化。
【资源视图】:提供了该工程用到的所有资源,包括:Accelerator快捷键、Dialog对话框、Icon图标、Menu菜单、String Table字符串、Toolbar工具栏、以及Version版本
-
vs2015创建MFC工程连接数据库
2017-06-28 08:40:19在stdafx.h中添加 #import"C:\Program Files\Common Files\System\ado\msado15.dll" no_namespaces rename("EOF" adoEOF") 报错 -
使用VS2010创建MFC ActiveX工程项目
2020-09-03 14:09:12VS2010开发ActiveX有两种方法,分别是MFC和ATL。MFC开过起来比较简单,但是最终生成的文件比较大,ATL是专门用来开发ActiveX的,但是相对比较难,必须知道很多原理机制和API。咱先从MFC开发ActiveX开始吧。 -
VS2017创建MFC ActiveX工程制作IE OCX插件
2019-07-08 21:48:42最近看了一个采用MFC ActiveX封装DLL的OCX...1.VS2007创建MFC ActiveX工程制作IE OCX插件 2.VS2007中MFC ActiveX工程如何调试 3.在IE中使用JS调用第三方DLL函数 4.通过cab包由IE自动注册ActiveX 5.ActiveX数字签名 ...最近看了一个采用MFC ActiveX封装DLL的OCX项目的源码,现将学习到的内容记录下来。本次的学习记录计划写如下几个主题:
1.VS2017创建MFC ActiveX工程制作IE OCX插件
2.VS2017中MFC ActiveX工程如何调试
3.在IE中使用JS调用第三方DLL函数
4.通过cab包由IE自动注册ActiveX
5.ActiveX数字签名一、VS2017新建工程
VS2017创建MFC ActiveX工程的教程很多,在此简单的写一下如何新建一个MFC ActiveX工程。- 新建工程
- 默认,直接点击下一步
- 由于不需要显示AboutBox,取消打勾“有关于对话框”,点击完成
- 建好的工程如下图
二、示例代码编写
js可以调用的ocx函数,一般写在CDemoAXCtrl类中,该类即为控件类(一个ActiveX可以写多个控件类,本文就使用默认生成的这个CDemoAXCtrl控件类)
本人在CDemoAxCtrl中添加了两个方法,如下// JS调用返回 欢迎 xx,hello world! BSTR CDemoAXCtrl::speakHelloWorld(LPCTSTR pname) { CString res(""); res.Format(_T("您好%s,hello world!"), pname); return res.AllocSysString(); } LONG CDemoAXCtrl::add(LONG a, LONG b) { return a + b; }
仅仅添加方法,JS还不能调用,我们还需要添加如下代码
//DemoAXCtrl.h中,添加如下代码 class CDemoAXCtrl : public COleControl { //此处为默认生成的代码 // 调度和事件 ID public: enum { dispidSpeakHelloWorld = 1L, dispidadd = 2L }; protected: // JS调用返回 欢迎 xx,hello world! BSTR speakHelloWorld(LPCTSTR name); LONG add(LONG a, LONG b); };
//在DemoAXCtrl.cpp 中添加 // 调度映射 BEGIN_DISPATCH_MAP(CDemoAXCtrl, COleControl) DISP_FUNCTION_ID(CDemoAXCtrl, "speakHelloWorld", dispidSpeakHelloWorld, speakHelloWorld, VT_BSTR, VTS_BSTR) //VT_I4 表示long; VT_BSTR表示 BSTR; //VTS_BSTR 表示 LPCTSTR DISP_FUNCTION_ID(CDemoAXCtrl, "add", dispidadd, add, VT_I4, VTS_I4 VTS_I4) END_DISPATCH_MAP()
DISP_FUNCTION_ID宏被在调度映射中使用,用来定义一个OLE自动化函数。
DISP_FUNCTION_ID( theClass, pszName, dispid,pfnMember, vtRetVal, vtsParams )- theClass:类的名字
- pszName:函数的外部名字
- dispid
- pfnMember:成员函数的名字
- vtRetVal:指定了函数返回类型的值(VT_开头表示返回值类型)
- vtsParams:指定了函数参数表的一个或多个常量的用空格分隔的列表(VTS_开头表示参数类型,多个参数以空格分隔)
//在DemoAX.idl中添加这两个函数 // CDemoAXCtrl 的主调度接口 [ uuid(0266f790-8f07-4038-b5ee-45f75359c010) ] dispinterface _DDemoAX { properties: methods: [id(1)] BSTR speakHelloWorld(BSTR name); [id(2)] LONG add(LONG a, LONG b); };
我们在类视图中可看到上述添加的函数
通过上述过程,即编写好一个可以js调用的ocx。三、js调用OCX
<HTML> <HEAD> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <TITLE>测试页</TITLE> </HEAD> <BODY > <input type="button" id="Button2" style="width:120px;height:30px;font-size:13px" name="Button1" value="测试OCX函数" onClick="btn1Click();"> <br> <script> function btn1Click(){ var DemoAx = document.getElementById("DemoAx"); var num = DemoAx.add(1,3); alert(num); var str = DemoAx.speakHelloWorld("张三"); alert(str); } </script> </BODY> <OBJECT ID="DemoAx" CLASSID="CLSID:1B57AD6F-8E59-4A5F-8829-0276002B872A" width= "0" height="0"> </OBJECT> </HTML>
- 新建工程
-
如何修改VS2005创建MFC工程的默认模板
2013-07-11 16:39:18大家都知道新建一个VS2005的对话框工程,会有自动的模板生成,但是这个模板和我喜欢的风格不搭。。。 怎么办,修改之。。。 其中MFC中的对话框工程的模板在C:\Program Files\Microsoft Visual Studio 8\VC... -
用VS2008创建MFC工程出现问题
2013-04-14 16:14:07创建工程的时候会出现一个错误提示“automation服务器不能创建对象” -
VS2013/MFC基于对话框编程: [1]创建MFC工程
2017-08-16 10:00:57界面和功能上相比之前的版本有了较大的改善和提高,MFC作为集成API的简单版更适合编程开发,许多应用软件都是基于对话框的,这里就介绍一下如何在VS2013中创建一个基于对话框的MFC项目。 工具/原料 • Visual ... -
VS2010创建MFC ActiveX工程项目
2014-02-12 14:54:37c++ ActiveX基础1:使用VS2010创建MFC ActiveX工程项目1.ActiveX的基本概念 ActiveX控件可以看作是一个极小的服务器应用程序,它不能独立运行,必须嵌入到某个容器程序中,与该容器一起运行。这个容器包括WEB网页,... -
创建MFC工程
2021-03-05 16:16:59开发环境:Windows10 + VS2019 创建项目名 一顿操作猛如虎之后就可以摆放控件,在CPP里写功能了。 -
使用VS2010创建MFC工程,并添加VTK引用
2015-03-31 15:04:03VTK安装三步曲(vs2010) 1.安装vtk-win32.exe,安装到d:\vtk,目录尽量短,因为后面引用更方便。 2.将vtk源代码解压到d:\vtk\sourcecode 3.下载vtkdata.zip,这是vtk例子所需要的数据,解压到d:\vtk\vtkdata 4.安装... -
vs2008 创建空MFC工程
2012-10-23 22:29:48利用VS2008可以创建各种工程。 对于WIN32程序来说,有两种创建方法。一种是,利用向导创建WIN32空工程,然后自己添加头文件,和源文件;另一种是,利用向导直接生成WIN32程序,此向导生成的程序经过编译即可... -
使用vs2010创建MFC工程后,vs2010的bug,不知道你们有没有
2011-03-10 09:59:00当你创建一个vc MFC的项目时,会产生一个以项目名开头的app类,比如你创建的是...我测试过,MFC工程都会这样,MFCDLL也同样有这问题,重装过系统和vs2010,问题照旧. 补充:在XP系统上也同样有这问题. 转载于:https:... -
vs2012创建空MFC工程
2014-06-04 19:28:42一种是,利用向导创建WIN32空工程,然后自己添加头文件,和源文件;另一种是,利用向导直接生成WIN32程序,此向导生成的程序经过编译即可运行,显示一个窗口。当然了,这两种方法都是API 编程。 对于MFC程序来... -
vs2010 MFC 工程瘦身
2014-03-07 17:51:18vs2010 MFC 工程瘦身 解决方案详见:红色字体部分 用应用程序向导生成框架程序后,我们可以在之前设置的Location下看到以解决方案名命名的文件夹,此文件夹中包含了几个文件和一个以工程名命名的子文件夹,这个... -
C++ ActiveX基础1 使用VS2015创建MFC ActiveX工程项目
2019-04-20 16:54:15使用VS2015创建MFC ActiveX工程项目 1.ActiveX的基本概念 ActiveX控件可以看作是一个极小的服务器应用程序,它不能独立运行,必须嵌入到某个容器程序中,与该容器一起运行。这个容器包括WEB网页,应用程序窗体等。 ... -
VS2010 创建MFC工程报错 rcxdti.dll无法加载rcxdtiui.dll
2014-03-22 11:34:39将rcxdtiui.dll拷贝到C:\Program Files\Microsoft Visual Studio 10.0\VC\vcpackages\2052下后创建成功 -
使用VS2008创建MFC ActiveX工程项目
2016-04-11 13:52:484.使用VS2010创建MFC ActiveX工程项目步骤 由于使用ATL进行ActiveX工程的创建难度比较大,所以这里先使用“MFC ActiveX 控件”工程来创建一个简单的ActiveX控件。 第一:新建项目-》选择“MFC ActiveX ... -
C++ 使用VS2010创建MFC ActiveX工程项目
2018-03-02 23:22:594.使用VS2010创建MFC ActiveX工程项目步骤 由于使用ATL进行ActiveX工程的创建难度比较大,所以这里先使用“MFC ActiveX 控件”工程来创建一个简单的ActiveX控件。 第一:新建项目-》选择“MFC ActiveX ...