首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

为啥对话框类不能作为另一个类的引用变量成员

2013-06-26 
为什么对话框类不能作为另一个类的引用变量成员?一个基于对话框的MFC程序。本来有一个对话框类CTESTDlg我

为什么对话框类不能作为另一个类的引用变量成员?
一个基于对话框的MFC程序。
本来有一个对话框类CTESTDlg;
我新建了一个C++类,为这个C++类添加一个CTESTDlg*的指针成员。这样这个C++类就好向对话框发送消息了。
可是编译通不过,出现未声明错误


#pragma once
#include "TESTDlg.h"

class Foo
{
public:
Foo(void);
~Foo(void);

private:
CTESTDlg *m_dlg;//
};



//下面为vs自动生成的对话框的头文件

// TESTDlg.h : 头文件
//

#pragma once


// CTESTDlg 对话框
class CTESTDlg : public CDialogEx
{
// 构造
public:
CTESTDlg(CWnd* pParent = NULL);// 标准构造函数

// 对话框数据
enum { IDD = IDD_TEST_DIALOG };

protected:
virtual void DoDataExchange(CDataExchange* pDX);// DDX/DDV 支持


// 实现
protected:
HICON m_hIcon;

// 生成的消息映射函数
virtual BOOL OnInitDialog();
afx_msg void OnPaint();
afx_msg HCURSOR OnQueryDragIcon();
DECLARE_MESSAGE_MAP()
};



报错信息如下testdlg.h(16): error C2065: “IDD_TEST_DIALOG”: 未声明的标识符

难道对话框类不能作为另一个类的成员变量吗?
[解决办法]
在工程里找找 IDD_TEST_DIALOG 对应的资源,看看是否存在。
[解决办法]
强行把 Foo 的定义写在 TESTDlg.h 里面,看是否还报错,如果不报的话,那就是需要包含其他头文件。
[解决办法]
要包含Resource.h吧

热点排行