|  | 
 
| MFC通过CDlgModName dlg;传递参数 在 MFC 中,如果你想通过 `CDlgModName` 类(假设它是一个自定义对话框类)来传递参数,可以通过构造函数或公共方法来实现。这里是一个简单的示例,展示如何在 MFC 中创建一个对话框并传递参数。
 
 ### 1. 定义对话框类
 
 首先,确保你的对话框类(例如 `CDlgModName`)有一个构造函数,可以接受参数。以下是一个简单的对话框类定义示例:
 
 复制代码
```cpp
// DlgModName.h
#pragma once
#include "afxwin.h"
class CDlgModName : public CDialogEx
{
public:
    CDlgModName(CWnd* pParent = nullptr, CString param = _T("")); // 构造函数
    // 对话框数据
#ifdef AFX_DESIGN_TIME
    enum { IDD = IDD_DIALOG_MODNAME }; // 对话框 ID
#endif
protected:
    virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
    virtual BOOL OnInitDialog(); // 初始化对话框
private:
    CString m_param; // 用于存储传递的参数
    DECLARE_MESSAGE_MAP()
};
```
 ### 2. 实现对话框类
 
 在对话框类的实现文件中,处理传递的参数:
 
 复制代码
```cpp
// DlgModName.cpp
#include "stdafx.h"
#include "DlgModName.h"
#include "afxdialogex.h"
IMPLEMENT_DYNAMIC(CDlgModName, CDialogEx)
CDlgModName::CDlgModName(CWnd* pParent /*=nullptr*/, CString param /*= _T("")*/)
    : CDialogEx(IDD_DIALOG_MODNAME, pParent), m_param(param) // 初始化参数
{
}
void CDlgModName::DoDataExchange(CDataExchange* pDX)
{
    CDialogEx::DoDataExchange(pDX);
    // DDX 控件变量
}
BOOL CDlgModName::OnInitDialog()
{
    CDialogEx::OnInitDialog();
    // 在这里可以使用 m_param 进行初始化
    SetDlgItemText(IDC_STATIC_PARAM, m_param); // 假设有一个静态文本控件显示参数
    return TRUE; // 返回 TRUE 以设置焦点到控件
}
BEGIN_MESSAGE_MAP(CDlgModName, CDialogEx)
END_MESSAGE_MAP()
```
 
 ### 3. 在主窗口中调用对话框
 
 接下来,在你的主窗口或其他地方创建并显示这个对话框,同时传递参数:
 
 复制代码
```cpp
// 在主窗口或其他地方
void CYourMainDlg::OnBnClickedButtonShowDialog()
{
    CString param = _T("Hello, World!"); // 要传递的参数
    CDlgModName dlg(this, param); // 创建对话框对象并传递参数
    if (dlg.DoModal() == IDOK)
    {
        // 处理对话框返回的结果
    }
}
```
 
 ### 4. 处理对话框返回值
 
 在对话框中,你可以根据需要处理用户输入,并在 `OnOK` 或 `OnCancel` 中返回相应的值。
 
 ### 总结
 
 通过上述步骤,你可以在 MFC 中通过对话框类的构造函数传递参数。确保在对话框的 `OnInitDialog` 中使用这些参数进行初始化。这样可以方便地在对话框中显示或处理传递的值。
 
 
 | 
 |