Mfc 如何在vc中找到对话框中的按钮++

Mfc 如何在vc中找到对话框中的按钮++,mfc,Mfc,如何在对话框中找到按钮 public: afx_msg void OnBnClickedOk(); afx_msg void OnBnClickedCancel(); afx_msg void OnBnClickedButton1(); CButton m_Button; BOOL DialogNew::OnInitDialog() { m_Button = GetDlgItem() } };

如何在对话框中找到按钮

public:
    afx_msg void OnBnClickedOk();   
    afx_msg void OnBnClickedCancel();   
    afx_msg void OnBnClickedButton1();
    CButton m_Button;    
    BOOL DialogNew::OnInitDialog()
    {
        m_Button = GetDlgItem()    
    }
};

如果您添加一个成员变量,如m_Button或消息处理程序函数,如OnBnClickedButton1,那么您应该使用IDE向导来完成此操作,IDE向导会添加一些神奇的代码,使这些功能正常运行

我不知道你的问题是什么意思,但一本关于MFC的书或教程将是一个好的开始。以下是两个教程:


在您的情况下,成员变量允许您命名控件对象的实例,以便以后可以调用其成员方法。使用控件时不需要成员变量。然而,它们确实让事情变得更容易。在使用GetDlgItem时,我要提醒您,因为它返回一个指向控件的临时指针,并且在下次使用它时可能无效。如果您想使用成员变量,并且应该尽可能使用,请遵循ScottMcP MVP提供的建议。

根据我的经验,大多数情况下,您不需要成员函数与对话框中的按钮交互。大多数情况下,您可以在派生类消息映射中使用单击的消息处理程序。如果确实要创建成员变量,请在DoDataExchange中初始化它。VisualStudio向导将帮助您做到这一点。下面是一个对话框的一些示例伪代码,该对话框有一个消息映射,其中有一个用于单击IDC_按钮1的处理程序,还为其初始化了一个变量。如果查看定义了DDX_控件的头文件,您将看到其他漂亮的DDX_函数,如DDX_文本、DDX_检查和DDX_无线电

class CMyDialog : public CDialog
{
public:
 /// blah, blah, blah....
   DECLARE_MESSAGE_MAP()
   void OnClickThatButton();

   void DoDataExchange(CDataExchange* pDX); // initialize controls in dialogs in DoDataExchange()
protected:
   CButton m_Button;
};

BEGIN_MESSAGE_MAP(CMyDialog, CDialog)
   ON_BN_CLICKED(IDC_BUTTON1, OnClickThatButton)
END_MESSAGE_MAP()

void CMyDialog::OnClickThatButton()
{
   AfxMessageBox(_T("put your functionality here.");
}

void CMyDialog::DoDataExchange(CDataExchange* pDX)
{
   CDialog::DoDataExchange(pDX);
   DDX_Control(pDX, IDC_BUTTON1, m_Button);
}

用它做什么?你能说得更具体一点吗?我想我不知道如何使用成员变量。但它们到底是什么,它们是如何与控件关联的?