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

请教怎么在自定义的类中使用对话框类?多谢

2012-02-11 
请问如何在自定义的类中使用对话框类?谢谢!请教一个问题:我在一个工程中添加了一个自定义的C++类:class A{

请问如何在自定义的类中使用对话框类?谢谢!
请教一个问题:
我在一个工程中添加了一个自定义的C++类:
class A
{
  .....
  void test();
}

利用对话框资源编辑器向工程中添加一个对话框ID=IDD_PRO_DLG,对话框类为CProDlg,头文件为proDlg.h
我想在类A的方法test()函数中使用对话框类生成一个对话框,做法如下:
在A.cpp中使用#include "proDlg.h"包含对话框类头文件,然后在test()中添加如下代码:
void test()
{
  ...
  CProDlg tempdlg;
  tempdlg.DoModal();
}


编译时出错提示:
error C2065: 'IDD_PRO_DLG' : undeclared identifier

请问这个是什么原因?是不是在自定义的类中无法使用对话框呀?改如何解决?多谢!

[解决办法]
哪个文件的错误?#include "resource.h"
[解决办法]
对话框资源ID(IDD_XXX)的定义在resource.h文件中。哪儿需要资源ID哪儿就需要#include "resource.h"
[解决办法]
编译的时候是只编译cpp文件,h文件是不会编译,只会根据需要插入到cpp文件中去。

假如你有两个头文件a.h,b.h

在c.cpp中一次包含了
#include "a.h"
#include "b.h"

如果在a.h中有包含了resource.h,那么在b.h中使用resource.h里面的ID,c.cpp是不会报错的。

但是如果d.cpp只有
#include "b.h" ,那么d.cpp是会报错的,找不到这个ID,就是类似你这样的错误。

一般情况下系统生成的proDlg.cpp文件,会自动的包含了你的工程头文件myApp.h,而这个头文件里面有resource.h
[解决办法]
顶LS,resource.h已经被include到工程头文件里了。你要在proDlg.cpp中include 工程头文件

热点排行