我有个一按钮的响应函数,
它直接调用该响应函数所在的类的成员变量,
而没有通过对象调用,也编译成功,是怎么回事??void CSerialCommDlg::OnOpen()
{
/*CComboBox *com=(CComboBox*)GetDlgItem(IDC_COMSELECT); //获取串口号
int i=com->GetCurSel()+1;
CString scom;
scom.Format("%d",i);
scom="COM"+scom;*/
//设置该串口的波特率、奇偶校验等参数;
if(m_theCommPort.Init (LPCSTR(scom),9600,0,1,8)==S_OK)
{
m_bReady=TRUE;
}
m_theCommPort.Start ();}
m_bReady是CSerialCommDlg的成员变量。他没有通过对象调用
它直接调用该响应函数所在的类的成员变量,
而没有通过对象调用,也编译成功,是怎么回事??void CSerialCommDlg::OnOpen()
{
/*CComboBox *com=(CComboBox*)GetDlgItem(IDC_COMSELECT); //获取串口号
int i=com->GetCurSel()+1;
CString scom;
scom.Format("%d",i);
scom="COM"+scom;*/
//设置该串口的波特率、奇偶校验等参数;
if(m_theCommPort.Init (LPCSTR(scom),9600,0,1,8)==S_OK)
{
m_bReady=TRUE;
}
m_theCommPort.Start ();}
m_bReady是CSerialCommDlg的成员变量。他没有通过对象调用
在类的成员函数中可以直接使用,相当于 this->m_bReady
===========================
你一执行不就有了这个类的对象了,有对象一定会调用构造函数,当然会初始化.在类的函数中引用类成员一般都是这样用的,难道还有别的用法.
如果你的是dlg程序,在app类的初始化函数已经创建了CSerialCommDlg的对象
是不是theApp全局对象???好像有点道理
不是theApp是App类的对象在App的InitInstance()函数中有下面这样的代码:CSerialCommDlg dlg; //创建CSerialCommDlg对象
m_pMainWnd = &dlg;
int nResponse = dlg.DoModal();
if (nResponse == IDOK)
{
// TODO: Place code here to handle when the dialog is
// dismissed with OK
}
else if (nResponse == IDCANCEL)
{
// TODO: Place code here to handle when the dialog is
// dismissed with Cancel
}