www.pudn.com > SMSDemoALL.zip > DlgCall.cpp
// DlgCall.cpp : implementation file
//
#include "stdafx.h"
#include "MobileSMSDemo.h"
#include "DlgCall.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CDlgCall dialog
CDlgCall::CDlgCall(CWnd* pParent /*=NULL*/)
: CDialog(CDlgCall::IDD, pParent)
{
//{{AFX_DATA_INIT(CDlgCall)
m_strDTMF = _T("");
m_strPhone = _T("");
//}}AFX_DATA_INIT
m_lCallType=0;
}
void CDlgCall::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CDlgCall)
DDX_Text(pDX, IDC_EDIT_DTMF, m_strDTMF);
DDX_Text(pDX, IDC_EDIT_PHONE, m_strPhone);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CDlgCall, CDialog)
//{{AFX_MSG_MAP(CDlgCall)
ON_BN_CLICKED(IDC_BUTTON_DIAL, OnButtonDial)
ON_BN_CLICKED(IDC_BUTTON_SEND, OnButtonSend)
ON_BN_CLICKED(IDC_BUTTON_HANGUP, OnButtonHangup)
ON_BN_CLICKED(IDC_BUTTON_ANSWER, OnButtonAnswer)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CDlgCall message handlers
BOOL CDlgCall::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
if(0==m_lCallType)
{
GetDlgItem(IDC_BUTTON_CALL)->EnableWindow(TRUE);
}
else
{
GetDlgItem(IDC_BUTTON_ANSWER)->EnableWindow(TRUE);
GetDlgItem(IDC_BUTTON_HANGUP)->EnableWindow(TRUE);
}
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CDlgCall::OnButtonDial()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
if(m_pSMS->CallDial(m_strPhone,20)<0)
{
AfxMessageBox("Call dial failed!");
return;
}
GetDlgItem(IDC_BUTTON_SEND)->EnableWindow(TRUE);
GetDlgItem(IDC_EDIT_DTMF)->EnableWindow(TRUE);
GetDlgItem(IDC_BUTTON_HANGUP)->EnableWindow(TRUE);
GetDlgItem(IDC_BUTTON_DIAL)->EnableWindow(FALSE);
}
void CDlgCall::OnButtonSend()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
if(m_pSMS->CallSendDTMF(m_strDTMF)<0)
{
AfxMessageBox("Sent DTMF failed!");
return;
}
m_strDTMF.Empty();
UpdateData(FALSE);
}
void CDlgCall::OnButtonHangup()
{
// TODO: Add your control notification handler code here
if(m_pSMS->CallHangup()<0)
{
AfxMessageBox("Call hangup failed!");
return;
}
GetDlgItem(IDC_BUTTON_SEND)->EnableWindow(FALSE);
GetDlgItem(IDC_EDIT_DTMF)->EnableWindow(FALSE);
GetDlgItem(IDC_BUTTON_HANGUP)->EnableWindow(FALSE);
GetDlgItem(IDC_BUTTON_ANSWER)->EnableWindow(FALSE);
GetDlgItem(IDC_BUTTON_DIAL)->EnableWindow(TRUE);
}
void CDlgCall::OnButtonAnswer()
{
// TODO: Add your control notification handler code here
if(m_pSMS->CallAnswer()<0)
{
AfxMessageBox("Call answer failed!");
return;
}
GetDlgItem(IDC_BUTTON_SEND)->EnableWindow(TRUE);
GetDlgItem(IDC_BUTTON_ANSWER)->EnableWindow(FALSE);
GetDlgItem(IDC_EDIT_DTMF)->EnableWindow(TRUE);
}