www.pudn.com > CirMMI.rar > DialUpDlg.cpp


// DialUpDlg.cpp : implementation file 
// 
#include "stdafx.h" 
#include "resource.h" 
#include "DialUpDlg.h" 
#include "cirmmidlg.h" 
 
#ifdef _DEBUG 
#define new DEBUG_NEW 
#undef THIS_FILE 
static char THIS_FILE[] = __FILE__; 
#endif 
 
///////////////////////////////////////////////////////////////////////////// 
// CDialUpDlg dialog 
 
 
CDialUpDlg::CDialUpDlg(CWnd* pParent /*=NULL*/) 
	: CDialog(CDialUpDlg::IDD, pParent) 
{ 
	//{{AFX_DATA_INIT(CDialUpDlg) 
		// NOTE: the ClassWizard will add member initialization here 
	//}}AFX_DATA_INIT 
} 
 
 
void CDialUpDlg::DoDataExchange(CDataExchange* pDX) 
{ 
	CDialog::DoDataExchange(pDX); 
	//{{AFX_DATA_MAP(CDialUpDlg) 
	DDX_Control(pDX, IDC_EDIT1, m_ctDialNum2); 
	DDX_Control(pDX, IDC_COMBO_NUM, m_ctDialNum); 
	//}}AFX_DATA_MAP 
} 
 
 
BEGIN_MESSAGE_MAP(CDialUpDlg, CDialog) 
	//{{AFX_MSG_MAP(CDialUpDlg) 
	ON_WM_CTLCOLOR() 
	ON_WM_PAINT() 
	//}}AFX_MSG_MAP 
	MY_KEY_MAP(OnKeyProc) 
		INIT_EXIT_MAP(InitWnd,ExitWnd) 
END_MESSAGE_MAP() 
 
///////////////////////////////////////////////////////////////////////////// 
// CDialUpDlg message handlers 
CString TranslateNum(const CString& strNum) 
{ 
 
	CString _strNum=strNum; 
	if(strNum==L"组200") 
	{ 
		_strNum=L"*17#200"; 
	} 
	else if(strNum==L"组579") 
	{ 
		_strNum=L"*17#579"; 
 
	} 
	return _strNum; 
} 
UINT CDialUpDlg::OnKeyProc(WPARAM wData, LPARAM lex) 
{ 
	 
	UINT ret=1; 
	CCirMMIDlg *pMainDlg=(CCirMMIDlg *)GetParent(); 
	FromMcuInfo *pInfo=(FromMcuInfo*)wData; 
	if(NULL==pInfo) 
		return 0;  //error... 
	 
	switch(pInfo->type) 
	{ 
	case 0x20: 
		{ 
			BYTE wKey=pInfo->key[0]; 
			switch(wKey) 
			{ 
			case K_LEFT: 
				m_ctDialNum2.SendMessage(WM_KEYDOWN,VK_UP); 
				break; 
			case K_RIGHT: 
				m_ctDialNum2.SendMessage(WM_KEYDOWN,VK_DOWN); 
				break; 
			case K_ENTER: 
				m_ctDialNum2.SendMessage(WM_KEYDOWN,VK_RETURN); 
				break; 
			case KEY_QUIT: 
				m_ctDialNum2.SetSel(0); 
				//m_ctDialNum2.SendMessage(WM_KEYDOWN,WM_QUIT); 
				pMainDlg->RetDefaultPage(); 
				ret=0; 
				break; 
			case KEY_HANDER_D:	//挂机11.18 
				m_ctDialNum2.SetSel(0); 
				//m_ctDialNum2.SendMessage(WM_KEYDOWN,WM_QUIT); 
				pMainDlg->RetDefaultPage(); 
				ret=0; 
				break; 
			case 0x20://呼叫 
				{ 
					CString str; 
					m_ctDialNum2.GetWindowText(str); 
					if(str.IsEmpty()) 
						break; 
					str=TranslateNum(str); 
					BYTE DialNum[60]; 
					for(int i=0;i<59 && iPostPackToHost(); 
					str=_T("正在呼叫")+str; 
					pMainDlg->ToShowInfo(str,200*5*5); 
					*/ 
					pMainDlg->GsmrCallByNUM(DialNum,i+1); 
					 
				} 
				break; 
			case 0x5b://回格 
				{ 
					CString str; 
					m_ctDialNum2.GetWindowText(str); 
					if(str.IsEmpty()) 
					{ 
						pMainDlg->RetDefaultPage(); 
					} 
					else 
					{ 
						 
						 
						str=str.Left(str.GetLength()-1); 
						m_ctDialNum2.SetSel(0,-1); 
						m_ctDialNum2.ReplaceSel(str,FALSE); 
					} 
				} 
				break; 
			default: 
				if(wKey>=0x23 && wKey<=0x2e) 
				{ 
					if(m_ctDialNum2.GetWindowTextLength()>=21) 
					{ 
						pMainDlg->m_DlgPopShow.ToShow(L"号码溢出",RGB(200,200,0)); 
						break; 
					} 
 
					DWORD dwSel=m_ctDialNum2.GetSel(); 
					if(HIWORD(dwSel)!=LOWORD(dwSel)) 
						m_ctDialNum2.SetWindowText(L""); 
					CHAR ch=wKey==0x2c?'0':(wKey==0x2d?'*':(wKey==0x2e?'#':(wKey-0x22+'0'))); 
					CString str; 
					m_ctDialNum2.GetWindowText(str); 
					str+=ch; 
					m_ctDialNum2.SetWindowText(str); 
					m_ctDialNum2.SetSel(str.GetLength(),-1); 
				} 
				else 
					ret=0; 
			} 
		} 
		break; 
	default: 
		ret=0; 
	} 
	return ret; 
	 
} 
 
BOOL CDialUpDlg::OnInitDialog()  
{ 
	CDialog::OnInitDialog(); 
	 
 
		static CFont DialFont; 
		DialFont.CreateFont 
		(-20,0, 
		0, 
		0, 
		700, 
		0, 
		0, 
		0, 
		DEFAULT_CHARSET, 
		2, 
		3, 
		DEFAULT_QUALITY, 
		49, 
		_T("Arial") 
		); 
 
	m_ctDialNum2.SetFont(&DialFont); 
	strUsefulNum.Empty(); 
	 
	return TRUE;  // return TRUE unless you set the focus to a control 
	              // EXCEPTION: OCX Property Pages should return FALSE 
} 
 
void CDialUpDlg::AddOneRecordToPhoneBook() 
{ 
	m_ctDialNum2.GetWindowText(strUsefulNum) ; 
/* 
 
	CString strNum; 
	m_ctDialNum.GetWindowText(strNum); 
	 
	for(INT i=0;i=m_ctDialNum.GetCount()) 
	{ 
		m_ctDialNum.InsertString(0,strNum); 
	} 
 
*/ 
} 
 
 
LRESULT CDialUpDlg::InitWnd(WPARAM wParam, LPARAM lParam) 
{ 
	CString str; 
	m_ctDialNum2.GetWindowText(str); 
 
	if(str.GetLength() == 1) 
	{ 
		return 1; 
	} 
 
	m_ctDialNum2.SetWindowText(strUsefulNum); 
	m_ctDialNum2.SetSel(0,-1); 
 
	return 1; 
} 
 
LRESULT CDialUpDlg::ExitWnd(WPARAM wParam, LPARAM lParam) 
{ 
	 
 
	return 1; 
} 
 
HBRUSH CDialUpDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)  
{ 
	HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor); 
 
	static	CBrush brDialBk(RGB(64,64,64*2)); 
 
	if(pWnd==&m_ctDialNum2) 
	{ 
		pDC->SetBkColor(RGB(64,64,64*2)); 
		pDC->SetTextColor(RGB(23,255,23)); 
		return brDialBk; 
	} 
 
	// TODO: Return a different brush if the default is not desired 
	return hbr; 
} 
 
void CDialUpDlg::OnPaint()  
{ 
	CPaintDC dc(this); // device context for painting 
	 
	// TODO: Add your message handler code here 
	CRect rect; 
	GetClientRect(&rect); 
 
	dc.FillSolidRect(rect,RGB(64,64,64*2));	 
 
 
	// Do not call CDialog::OnPaint() for painting messages 
}