VS2017MFC的对话框创建后,右键添加类失败,显示文件不存在,查看网上各方资料后,并没有找到正确版本的文件,所以只能手动尝试为对话框创建并添加类。下面将遇到的主要问题以及解决方法介绍如下(以下方法为手动创建对话框类的方法)。本方法是根据CABOUTDLG类及其对话框实现的,小白们可以自行查看尝试。
1. 创建对话框(IDD_TEST)后,右键添加类,弹出报错对话框(这就是我们遇到的问题)
2. 为自己的工程手动创建类(我创建的是:CTESTDLG)
3. 在CTESTDLG.h中添加如下代码
注意类后面 CDialogEx的继承
注意将对话框ID(IDD_TEST)更改成你所创建的ID
classCTESTDLG: publicCDialogEx
{
public:
CTESTDLG();
~CTESTDLG();
public:
// 对话框数据
#ifdef AFX_DESIGN_TIME
enum { IDD = IDD_TEST };
#endif
protected:
virtualvoidDoDataExchange(CDataExchange*pDX); // DDX/DDV 支持
// 实现
protected:
DECLARE_MESSAGE_MAP()
};
4. 在CTESTDLG.cpp中添加如下代码
注意要引用Resource.h类,以及构造函数的继承CDialogEx(dialog id)
注意将对话框ID(IDD_TEST)更改成你所创建的ID
#include"stdafx.h"
#include"CTESTDLG.h"
#include"Resource.h"
CTESTDLG::CTESTDLG(): CDialogEx(IDD_TEST)
{
}
voidCTESTDLG::DoDataExchange(CDataExchange* pDX)
{
CDialogEx::DoDataExchange(pDX);
}
CTESTDLG::~CTESTDLG()
{
}
BEGIN_MESSAGE_MAP(CTESTDLG,CDialogEx)
END_MESSAGE_MAP()
5. 在工程的View.cpp中引用CTEST.h。添加如下代码
其中32771 是我添加的按钮id,请自行更改
void CtestforapplicationView::On32771()
{
CTESTDLG testDlg;
testDlg.DoModal();
}
运行便可查看效果
本文由VS软件圈(vssoft.net)发布,不代表VS软件圈立场,转载联系作者并注明出处:https://vssoft.net/vsazwt/VS2017anzhuangwenti/2020/0725/4479.html