在 MFC(Microsoft Foundation Classes)中,CDialog 类是用于创建对话框的基类之一。CDialog 的公共构造函数通常用于初始化对话框的各种属性和成员变量。

以下是 CDialog 类的标准构造函数的声明:
CDialog();

这是一个无参数的构造函数,通常用于创建 CDialog 类的对象。在构造函数中,会进行对话框的初始化工作。如果您需要传递其他参数给构造函数,可以派生自 CDialog 类,并在派生类中添加相应的构造函数。

以下是一个简单的示例,演示了如何使用 CDialog 类的构造函数:
// MyDialog.h
#pragma once

#include "afxwin.h"

class CMyDialog : public CDialog
{
public:
    CMyDialog(UINT nIDTemplate, CWnd* pParent = nullptr); // 添加带参数的构造函数

    // Dialog Data
    #ifdef AFX_DESIGN_TIME
        enum { IDD = IDD_MYDIALOG };
    #endif

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

    // Implementation
protected:
    DECLARE_MESSAGE_MAP()
public:
    afx_msg void OnBnClickedOk();
    afx_msg void OnBnClickedCancel();
};

// MyDialog.cpp
#include "stdafx.h"
#include "MyDialog.h"

// CMyDialog 对话框

IMPLEMENT_DYNAMIC(CMyDialog, CDialog)

CMyDialog::CMyDialog(UINT nIDTemplate, CWnd* pParent /*=nullptr*/)
    : CDialog(nIDTemplate, pParent)  // 使用基类的构造函数进行初始化
{
}

void CMyDialog::DoDataExchange(CDataExchange* pDX)
{
    CDialog::DoDataExchange(pDX);
}

BEGIN_MESSAGE_MAP(CMyDialog, CDialog)
    ON_BN_CLICKED(IDOK, &CMyDialog::OnBnClickedOk)
    ON_BN_CLICKED(IDCANCEL, &CMyDialog::OnBnClickedCancel)
END_MESSAGE_MAP()

void CMyDialog::OnBnClickedOk()
{
    // TODO: 在此添加控件通知处理程序代码
    OnOK();
}

void CMyDialog::OnBnClickedCancel()
{
    // TODO: 在此添加控件通知处理程序代码
    OnCancel();
}

在这个示例中,CMyDialog 类派生自 CDialog 类,并添加了带有参数的构造函数,该构造函数接受一个对话框模板资源 ID (nIDTemplate) 和一个父窗口指针 (pParent)。在构造函数中,使用基类 CDialog 的构造函数进行对话框的初始化。


转载请注明出处:http://www.zyzy.cn/article/detail/17316/MFC/CDialog