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
}