MFC ClassWizard----Member Variables问题
Control IDs: Type Member
IDC_BUTTON1 CButton m_btn1
—————————————————————————————————————
问题:这里定义的CButton变量m_btn1 不是IDC_BUTTON1吧?但为什么在程序中可以
m_btn1.SetWindowText( "你已经按下了按钮! ");
m_btn1仅仅是按钮对象的一个成员变量而已,怎么会控制这个按钮来显示文本呢?
附:对话框函数GetDlgItem()返回的是对象的指针吧,我觉得这个函数的返回值才代表真正的对象本身,不知道理解的对不对?
[解决办法]
在
void CXXXDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CXXXDlg)
DDX_Control(pDX, IDC_BUTTON_PAUSE, m_btnPause);
DDX_Text(pDX, IDC_EDIT_DEVICE_GUID, m_strDeviceGuid);
//}}AFX_DATA_MAP
}
部分看控件关联的变量,
DDX_Control表示关联的是对象,而DDX_Text表示关联的是值。
当关联的是对象时,它可以控制控件的行为
[解决办法]
主要是数据交换void CXXX::DoDataExchange(CDataExchange* pDX){}的作用,把控件ID和相应的变量联系起来的.
[解决办法]
这正是VC的方便之处。