从其成员变量访问 CMFCButton

问题描述 投票:0回答:1

我有一个工作模式 MFC 对话框,有时会创建一个模式子对话框

DJMB_Dlg
。子对话框窗口是使用 VS 2022 中的对话框编辑器创建的。子对话框窗口有一个
CMFCButton
和一个成员变量 (
MB_can1_var
) (均使用 IDE 创建)。我也做过:

DECLARE_MESSAGE_MAP()  
CMyButton MB_can1_var; // member variable that was added w/wizard

如果我使用

BOOL DJMB_Dlg::OnInitDialog()
{   CDialogEx::OnInitDialog();
    MB_can1_var.Create(_T("My CButton"), 
        WS_CHILD | WS_VISIBLE | 
        BS_PUSHBUTTON, CRect(10, 10, 100, 30), this, 
        IDC_DJ_MB_CANCEL1); 
    ...
} 

我得到一个新按钮,可以使用

MB_can1_var.SetTextColor(...)
和其他功能。 但我无法弄清楚如何使用该成员变量在我的现有(预定义)按钮上执行相同的 Set... 功能。如果我将这些相同的函数调用放在 DJMB_Dlg
oninit
中,而不使用 Create,它们将被忽略。看来我还没有真正在我的预定义按钮和它的成员变量之间建立连接。这里我不明白什么???向导没有为我的预定义按钮添加任何代码(Message_Map 中也没有任何代码,但成员变量可以与 Create 一起使用。

PS。抱歉格式不正确。我使用反引号而不是 GT。

visual-c++ mfc modal-dialog
1个回答
0
投票

在资源编辑器中打开对话框并将 MFC 按钮拖到其上。

然后,右键单击该对话框并选择添加类的选项。现在您将拥有一个对话框资源/类组合。

右键单击按钮并选择添加变量。流行音乐将设置为控制。在大多数情况下,您将范围设置为私有。给它起个名字,例如:

m_mybutton

就是这样。系统会处理其余部分并添加所需的代码来创建按钮并将其绑定到变量。

遵循相同的方法将编辑控件映射到控件 (

CEdit
) 或值(例如
CString
)或两者。

如果将控件分配给一个值并赋予其私有范围,则在需要获取/设置值时添加公共函数。我希望有很多关于它的教程。

© www.soinside.com 2019 - 2024. All rights reserved.