《evc高级编程及其应用开发》例程中这样用OnOk(),OnClose(), 为何?

nightelf   2007-10-11 17:49 楼主
void CDlgSeriesSetup::OnBtnopen()
{
        CComboBox *pCmbName = NULL;
        CComboBox *pCmbBaud = NULL;
        CComboBox *pCmbParity = NULL;
        CComboBox *pCmbDataBits = NULL;
        CComboBox *pCmbStopBits = NULL;
       
        pCmbName = (CComboBox*)GetDlgItem(IDC_CMBNAME);
        pCmbBaud = (CComboBox*)GetDlgItem(IDC_CMBBAUD);
        pCmbParity = (CComboBox*)GetDlgItem(IDC_CMBPARITY);
        pCmbDataBits = (CComboBox*)GetDlgItem(IDC_CMBDATABITS);
        pCmbStopBits = (CComboBox*)GetDlgItem(IDC_CMBSTOPBITS);
        ASSERT(pCmbName != NULL);
        ASSERT(pCmbBaud != NULL);
        ASSERT(pCmbParity != NULL);
        ASSERT(pCmbDataBits != NULL);
        ASSERT(pCmbStopBits != NULL);
        //得到串口编号
        CString tmpCommName;
        pCmbName->GetWindowText(tmpCommName);
        m_portNo = _wtoi(tmpCommName);
        //得到波特率
        CString tmpBaud;
        pCmbBaud->GetWindowText(tmpBaud);
        m_baud = _wtoi(tmpBaud);
        //得到奇偶校验
        m_parity = pCmbParity->GetCurSel();
        //得到数据位
        CString tmpDataBits;
        pCmbDataBits->GetWindowText(tmpDataBits);
        m_databits = _wtoi(tmpDataBits);
        //得到停止位
        m_stopbits = pCmbStopBits->GetCurSel();
       
    OnOK();       
}

void CDlgSeriesSetup::OnBtnclose()
{
   OnClose();       
}
OnOK(),        OnClose()这两个函数怎莫这样用?
看msdn里面都与按钮ok  close相联系, 而自动添加的CDilog::OnOK()   CDilog::OnClose();的用法

回复评论 (5)

OnOK,OnClose虽然和特定按钮联系了,但是它们也还是普通的函数,当然可以拿来调用了。
点赞  2007-10-11 18:12
就是这样用的啊.虽然关联,但是说到底 OnOK 起作用

你可以在程序里 调用 类似于 OnBtnopen()这样的函数的
点赞  2007-10-11 19:50
这样用onok()  ,onclose()是全局函数吗,我没有在msdn里看到 其作为全局函数的介绍啊?只看到作为cdialog类成员函数的介绍
点赞  2007-10-16 07:58
CDlgSeriesSetup不就是cdialog类的一个派生类吗?
点赞  2007-10-16 08:17
CDlgSeriesSetup类不是从CDialog类中继承的?
是的话就可以使用OnOK
点赞  2007-10-16 10:53
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复