www.pudn.com > VOIP(H323).rar > CallAdvSetupDlg.cpp
// CallAdvSetupDlg.cpp : implementation file
//
#include "stdafx.h"
#include "H323.h"
#include "CallAdvSetupDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CCallAdvSetupDlg dialog
CCallAdvSetupDlg::CCallAdvSetupDlg(CWnd* pParent /*=NULL*/)
: CDialog(CCallAdvSetupDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CCallAdvSetupDlg)
m_bViaGK = FALSE;
m_bName = FALSE;
m_bNumber = FALSE;
m_strName = _T("");
m_strNumber = _T("");
m_strGatekeeper = _T("");
//}}AFX_DATA_INIT
m_bViaGW = TRUE;
}
void CCallAdvSetupDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CCallAdvSetupDlg)
DDX_Check(pDX, IDC_CALL_BY_GK, m_bViaGK);
DDX_Check(pDX, IDC_CALL_BY_NAME, m_bName);
DDX_Check(pDX, IDC_CALL_BY_NUMBER, m_bNumber);
DDX_Text(pDX, IDC_CALLED_NAME, m_strName);
DDX_Text(pDX, IDC_CALLED_NUMBER, m_strNumber);
DDX_Text(pDX, IDC_GK_ADDR, m_strGatekeeper);
//}}AFX_DATA_MAP
DDX_Check(pDX,IDC_CALL_VIA_GW,m_bViaGW);
DDX_Text(pDX,IDC_GATEWAY_ADDRESS,m_strGateway);
}
BEGIN_MESSAGE_MAP(CCallAdvSetupDlg, CDialog)
//{{AFX_MSG_MAP(CCallAdvSetupDlg)
ON_BN_CLICKED(IDC_CALL_BY_GK, OnCallByGk)
ON_BN_CLICKED(IDC_CALL_BY_NAME, OnCallByName)
ON_BN_CLICKED(IDC_CALL_BY_NUMBER, OnCallByNumber)
//}}AFX_MSG_MAP
ON_BN_CLICKED(IDC_CALL_VIA_GW,OnCallViaGW)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CCallAdvSetupDlg message handlers
void CCallAdvSetupDlg::OnCallByGk()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
CWnd *pGkAddr,*pByName,*pByNo,*pName,*pNo,*pViaGW,*pGW;
pGkAddr = GetDlgItem(IDC_GK_ADDR);
pByName = GetDlgItem(IDC_CALL_BY_NAME);
pName = GetDlgItem(IDC_CALLED_NAME);
pByNo = GetDlgItem(IDC_CALL_BY_NUMBER);
pNo = GetDlgItem(IDC_CALLED_NUMBER);
pViaGW = GetDlgItem(IDC_CALL_VIA_GW);
pGW = GetDlgItem(IDC_GATEWAY_ADDRESS);
if(m_bViaGK == FALSE)
{
pGkAddr->EnableWindow(FALSE);
pByName->EnableWindow(FALSE);
pName->EnableWindow(FALSE);
pByNo->EnableWindow(FALSE);
pNo->EnableWindow(FALSE);
pViaGW->EnableWindow(TRUE);
OnCallViaGW();
}
else
{
pGkAddr->EnableWindow(TRUE);
pByName->EnableWindow(TRUE);
pByNo->EnableWindow(TRUE);
pViaGW->EnableWindow(FALSE);
pGW->EnableWindow(FALSE);
OnCallByName();
OnCallByNumber();
}
}
void CCallAdvSetupDlg::OnCallByName()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
CWnd * pName = GetDlgItem(IDC_CALLED_NAME);
if(m_bName == TRUE)
pName->EnableWindow(TRUE);
else
pName->EnableWindow(FALSE);
}
void CCallAdvSetupDlg::OnCallByNumber()
{
// TODO: Add your control notification handler code here
UpdateData(TRUE);
CWnd * pNo = GetDlgItem(IDC_CALLED_NUMBER);
if(m_bNumber == TRUE)
pNo->EnableWindow(TRUE);
else
pNo->EnableWindow(FALSE);
}
void CCallAdvSetupDlg::OnCallViaGW()
{
UpdateData(TRUE);
CWnd *pGateway = GetDlgItem(IDC_GATEWAY_ADDRESS);
pGateway->EnableWindow(m_bViaGW);
}
BOOL CCallAdvSetupDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
CWnd *pGkAddr,*pByName,*pName,*pByNo,*pNo,*pByGW,*pGW;
pGkAddr = GetDlgItem(IDC_GK_ADDR);
pByName = GetDlgItem(IDC_CALL_BY_NAME);
pName = GetDlgItem(IDC_CALLED_NAME);
pByNo = GetDlgItem(IDC_CALL_BY_NUMBER);
pNo = GetDlgItem(IDC_CALLED_NUMBER);
pByGW = GetDlgItem(IDC_CALL_VIA_GW);
pGW = GetDlgItem(IDC_GATEWAY_ADDRESS);
pGkAddr->EnableWindow(m_bViaGK);
pByName->EnableWindow(m_bViaGK);
pName->EnableWindow(m_bName);
pByNo->EnableWindow(m_bViaGK);
pNo->EnableWindow(m_bNumber);
pByGW->EnableWindow(!m_bViaGK);
pGW->EnableWindow(m_bViaGW && !m_bViaGK);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CCallAdvSetupDlg::OnOK()
{
// TODO: Add extra validation here
UpdateData(TRUE);
if(m_bViaGK)
{
if(m_strGatekeeper.IsEmpty())
{
AfxMessageBox("请您键入一个有效的网守服务器地址");
return;
}
if(!m_bName && !m_bNumber)
{
AfxMessageBox("您选择了使用网关守卫但没有指定用什么信息登录网关守卫");
return;
}
if(m_bName)
{
if(m_strName.IsEmpty())
{
AfxMessageBox("您键入了一个无效的账户名,请检查后重新键入");
return;
}
}
if(m_bNumber)
{
if(m_strNumber.IsEmpty())
{
AfxMessageBox("呼叫号码不能为空,请重新键入");
return;
}
int nCount = m_strNumber.GetLength();
TCHAR ch;
for(int i = 0; i < nCount; i++)
{
ch = m_strNumber.GetAt(i);
if((ch < '0' && ch != '*' && ch != '#') || ch > '9')
{
AfxMessageBox("您键入了无效的号码,请检查后重新键入");
return;
}
}
}
}
CDialog::OnOK();
}