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); 
}