实现目标
针对一个已有的界面复杂的mfc项目,移植到新建的mfc项目当中去,使其正常运行。
实现背景
在学习mfc时,已画好一个较复杂的mfc界面。后面希望对原有mfc项目进行备份,再在新建的mfc项目上拷贝代码进行后续编程。但新建项目后,重画mfc界面嫌麻烦,故想用更简单的方法实现mfc项目的移植。
本地环境
操作系统:windows 7
编程工具:VS2017
界面实现:MFC
实现步骤
1、新建项目
点击VS菜单栏上“文件”->“新建”->“项目”,选择“MFC应用程序”点击“确定”新建mfc项目(之后选择默认选项,直接点击“完成”也可以)。
在“应用程序类型”上选择“基于对话框”,在“使用MFC”选择“在静态库中使用MFC”。
取消勾选“关于框”(使mfc项目结构简单点,若勾选也行)。
2、添加已有mfc项目
在VS菜单栏上点击“文件”->“添加”->“现有项目”,选择已有的mfc项目的*.vcxproj文件进行添加。在此,我选择添加的文件是“MFC.vcxproj”。
添加成功后,新建项目的解决方案会出现2个项目。其中MFC项目是已有的项目,MFC1是新建的项目。
3、拷贝MFC界面
点击vs菜单栏的“视图”->“其他窗口”->“资源视图”,打开资源视图。
在资源视图里面,复制已有项目MFC的界面文件“IDD_MFC_DIALOG”至新建项目MFC1的对应目录。
删除MFC1项目中的界面文件“IDD_MFC1_DIALOG”,在属性窗口更改“IDD_MFC_DIALOG”的文件名为“IDD_MFC1_DIALOG”
此时新的界面便做好了。
4、新建相关文件
新建运行如上界面所需的*.h和*.cpp文件。在MFC1项目中,缺少运行所需的function.h和function.cpp。故新建这两个文件。
分别在“头文件”和“源文件”右键点击选择“添加”->“新建项”,分别添加function.h和function.cpp,最后将MFC项目中function.h和function.cpp的代码复制到新建项目MFC1中的function.h和function.cpp。
注意:不要直接从MFC项目中复制function.h和function.cpp文件到MFC1项目中去,因为复制粘贴相当于只是建了1个指向原文件的指针,如下图所示,粘贴后打开function.h,其地址依旧是MFC项目中的地址,而不是在MFC1项目中创建一个同名文件,这与界面文件的复制粘贴是不一样的。
5、修改相关代码
根据vs的错误提示修改相关文件的代码,重点修改MFC1Glg.cpp文件,这需要根据具体代码而定,若代码写的比较整齐和集中,那修改起来就比较简单。