如何在不使用向导的情况下手动为控件(如“编辑”控件)添加控件变量并使用它?

时间:2019-07-16 08:09:20

标签: visual-c++ mfc visual-studio-2019

由于某种原因,“添加控制变量”向导在我的Visual Studio安装程序(“ Microsoft Visual Studio Community 2019”,版本16.1.16)中不起作用。

那么,如何访问代码中的控件?设置说“编辑控件”并访问其数据需要执行哪些手动代码步骤?

1 个答案:

答案 0 :(得分:0)

以下是一些简单的步骤,可以手动添加您自己的控件和处理程序。

MyDlg.h

public:
   CButton m_Button;                    // your control
protected:
   virtual void DoDataExchange(CDataExchange* pDX);  // declare the data exchange support
   DECLARE_MESSAGE_MAP()             // your message map
public:
   afx_msg void OnBnClickedMyButton();  // your message handler

MyDlg.cpp

// do data exchange between your variable and the control
void MyDlg::DoDataExchange(CDataExchange* pDX)
{
    CDialogEx::DoDataExchange(pDX);
    DDX_Control(pDX, ID_BTN, m_Button);
}
// map your message with handler
BEGIN_MESSAGE_MAP(MyDlg, CDialogEx)
    ON_BN_CLICKED(ID_BTN, &MyDlg::OnBnClickedMyButton)
END_MESSAGE_MAP()

BOOL MyDlg::OnInitDialog(){
    /* … */
    m_Button.Create(L"Click-Me", WS_CHILD | WS_VISIBLE, RECT{ 0,0,100,100 }, this, ID_BTN);
    m_Button.ShowWindow(true);
}