VC 在自定义类中怎么得到主对话框指针?

来源:百度知道 编辑:UC知道 时间:2024/05/14 17:03:30
AfxGetMainWnd(),我知道这个函数,问题是接收:
CxxxxDlg *pDlg=(CxxxxDlg *)AfxGetMainWnd();
肯定会提示CxxxxDlg未定义,那就定义呗,在自己类的CPP中写:
#include"xxxxDlg.h" 就会有问题,会提示enum { IDD = IDD_XXXX_DIALOG };未找到.而且Dialog中又会用到该类,容易造成头文件重复包含,在自己的类中声明class CxxxxDlg 却提示CxxxxDlg未定义!!真是麻烦,求解法

保存对话框指针为全局的,然后发消息的形式。

1、全局变量或一个类来保存CDialog的指针。如:
CWnd* g_Dlg;
2、与对话框交互,可以:
if ( g_Dlg && IsWindow( g_Dlg->GetSafeHwnd() )
{
g_Dlg->PostMessage( 你要处理的消息 );
}

没出现过你这样的问题.
只要包含了相关头文件就可以了。
CClassX *pDlg=(CClassX*)AfxGetMainWnd();