📄 callwnd.cpp
字号:
// CallWnd.cpp : implementation file
//
#include "stdafx.h"
#include "btwnd.h"
#include "CallWnd.h"
#include "CMD_COLLECTION.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CCallWnd dialog
#include "StatusSubWnd.h"
///////////////////////////////////////////////////////////////////
/////////////////全局变量//////////////////////////////////////////
CRect rect_num_dsplywindow;
HWND hwnd_num_dsplywindow ;
BYTE dial_num[20];
unsigned char dial_index=0;
unsigned int dial_num_extent_flg;
unsigned int first_to_paint=0;
const DWORD rolling[]={IDB_SG000,IDB_SG000,IDB_SG045,IDB_SG090,IDB_SG135,IDB_SG180,IDB_SG180,IDB_SG180,IDB_SG225,IDB_SG270,IDB_SG315,IDB_SG360,IDB_SG360};
DWORD rolling_index;
/////////////////////外部全局变量//////////////////
extern DWORD m_recv_index;
extern unsigned char recv_buf[1024] ;
extern DWORD FLG_bt_release,FLG_bt_into_talking;
CCallWnd::CCallWnd(CWnd* pParent /*=NULL*/)
: CDialog(CCallWnd::IDD, pParent)
{
//{{AFX_DATA_INIT(CCallWnd)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
}
void CCallWnd::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CCallWnd)
// NOTE: the ClassWizard will add DDX and DDV calls here
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CCallWnd, CDialog)
//{{AFX_MSG_MAP(CCallWnd)
ON_WM_PAINT()
ON_BN_CLICKED(IDC_SUB_KEY_FUNC_BS, btn_func_bs)
ON_BN_CLICKED(IDC_SUB_KEY_FUNC_CALL, btn_func_call)
ON_BN_CLICKED(IDC_SUB_KEY_FUNC_GET, btn_func_get)
ON_BN_CLICKED(IDC_SUB_KEY_FUNC_HANGUP, btn_func_hangup)
ON_BN_CLICKED(IDC_SUB_KEY_FUNC_RETRUN, btn_func_return)
ON_BN_CLICKED(IDC_SUB_DAIL_KEY0,btn_num0)
ON_BN_CLICKED(IDC_SUB_DAIL_KEY1,btn_num1)
ON_BN_CLICKED(IDC_SUB_DAIL_KEY2,btn_num2)
ON_BN_CLICKED(IDC_SUB_DAIL_KEY3,btn_num3)
ON_BN_CLICKED(IDC_SUB_DAIL_KEY4,btn_num4)
ON_BN_CLICKED(IDC_SUB_DAIL_KEY5,btn_num5)
ON_BN_CLICKED(IDC_SUB_DAIL_KEY6,btn_num6)
ON_BN_CLICKED(IDC_SUB_DAIL_KEY7,btn_num7)
ON_BN_CLICKED(IDC_SUB_DAIL_KEY8,btn_num8)
ON_BN_CLICKED(IDC_SUB_DAIL_KEY9,btn_num9)
ON_BN_CLICKED(IDC_SUB_DAIL_KEYmi,btn_nummi)
ON_BN_CLICKED(IDC_SUB_DAIL_KEYjing,btn_numjing)
ON_BN_CLICKED(IDC_SUB_KEY_JUMPTOTOP,btn_jumptotop)
ON_BN_CLICKED(IDC_SUB_KEY_FUNC_SWITCH,btn_func_switch)
ON_WM_TIMER()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CCallWnd message handlers
BOOL CCallWnd::OnInitDialog()
{
CDialog::OnInitDialog();
////////////设置播放器面板的出现位置//////////////
this->SetWindowPos(NULL,0,0,800,480,SWP_SHOWWINDOW);
this->GetWindowRect(&rect_call); //现在的原点的是屏幕的左上角,
this->ScreenToClient ( &rect_call ) ;
//////////////////////////功能按键 接听 /////////////////////
rect_key_func_get.TopLeft().x=252;
rect_key_func_get.TopLeft().y =416;
rect_key_func_get.BottomRight().x=rect_key_func_get.TopLeft().x +96;
rect_key_func_get.BottomRight().y=rect_key_func_get.TopLeft().y +52;
bmp_btn_func_get.Create(NULL,WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON|BS_OWNERDRAW,
rect_key_func_get,this,IDC_SUB_KEY_FUNC_GET);
bmp_btn_func_get.LoadBitmaps(IDB_SUB_BTFUNC_ANSWER_01,
IDB_SUB_BTFUNC_ANSWER_02,
IDB_SUB_BTFUNC_ANSWER_01,
NULL );
bmp_btn_func_get.AutoLoad(IDB_SUB_BTFUNC_ANSWER_01,this);
/////////////////////////////功能按键 拨打/////////////////////////
rect_key_func_call.TopLeft().x=352;
rect_key_func_call.TopLeft().y =416;
rect_key_func_call.BottomRight().x=rect_key_func_call.TopLeft().x +96;
rect_key_func_call.BottomRight().y=rect_key_func_call.TopLeft().y +52;
bmp_btn_func_call.Create(NULL,WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON|BS_OWNERDRAW,
rect_key_func_call,this,IDC_SUB_KEY_FUNC_CALL);
bmp_btn_func_call.LoadBitmaps(IDB_SUB_BTFUNC_DIAL_01,
IDB_SUB_BTFUNC_DIAL_02,
IDB_SUB_BTFUNC_DIAL_01,
NULL );
bmp_btn_func_call.AutoLoad(IDB_SUB_BTFUNC_DIAL_01,this);
/////////////////////////////////功能按键 返回/////////////////////////////
rect_key_func_return.TopLeft().x=652;
rect_key_func_return.TopLeft().y =416;
rect_key_func_return.BottomRight().x=rect_key_func_return.TopLeft().x +96;
rect_key_func_return.BottomRight().y=rect_key_func_return.TopLeft().y +52;
bmp_btn_func_return.Create(NULL,WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON|BS_OWNERDRAW,
rect_key_func_return,this,IDC_SUB_KEY_FUNC_RETRUN );
bmp_btn_func_return.LoadBitmaps( IDB_SUB_BTFUNC_RETURN_01,
IDB_SUB_BTFUNC_RETURN_02,
IDB_SUB_BTFUNC_RETURN_01,
NULL );
bmp_btn_func_return.AutoLoad(IDB_SUB_BTFUNC_RETURN_01,this);
////////////////数字按键0//////////////////////////////////////////
rect_key_num0.TopLeft().x=126;
rect_key_num0.TopLeft().y=318;
rect_key_num0.BottomRight().x=rect_key_num0.TopLeft().x+56;
rect_key_num0.BottomRight().y=rect_key_num0.TopLeft().y+56;
bmp_btn_num0.Create(NULL,WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON|BS_OWNERDRAW,
rect_key_num0,this,IDC_SUB_DAIL_KEY0);
bmp_btn_num0.LoadBitmaps(IDB_SUB_DIAL_KEY0_01,
IDB_SUB_DIAL_KEY0_02,
IDB_SUB_DIAL_KEY0_01,NULL
);
bmp_btn_num0.AutoLoad(IDB_SUB_DIAL_KEY0_01,this);
////////////////数字按键1//////////////////////////////////////////
rect_key_num1.TopLeft().x=49;
rect_key_num1.TopLeft().y=94;
rect_key_num1.BottomRight().x=rect_key_num1.TopLeft().x+56;
rect_key_num1.BottomRight().y=rect_key_num1.TopLeft().y+56;
bmp_btn_num1.Create(NULL,WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON|BS_OWNERDRAW,
rect_key_num1,this,IDC_SUB_DAIL_KEY1);
bmp_btn_num1.LoadBitmaps(IDB_SUB_DIAL_KEY1_01,
IDB_SUB_DIAL_KEY1_02,
IDB_SUB_DIAL_KEY1_01,NULL
);
bmp_btn_num1.AutoLoad(IDB_SUB_DIAL_KEY1_01,this);
////////////////数字按键2//////////////////////////////////////////
rect_key_num2.TopLeft().x=126;
rect_key_num2.TopLeft().y=94;
rect_key_num2.BottomRight().x=rect_key_num2.TopLeft().x+56;
rect_key_num2.BottomRight().y=rect_key_num2.TopLeft().y+56;
bmp_btn_num2.Create(NULL,WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON|BS_OWNERDRAW,
rect_key_num2,this,IDC_SUB_DAIL_KEY2);
bmp_btn_num2.LoadBitmaps(IDB_SUB_DIAL_KEY2_01,
IDB_SUB_DIAL_KEY2_02,
IDB_SUB_DIAL_KEY2_01,NULL
);
bmp_btn_num2.AutoLoad(IDB_SUB_DIAL_KEY2_01,this);
////////////////数字按键3//////////////////////////////////////////
rect_key_num3.TopLeft().x=203;
rect_key_num3.TopLeft().y=94;
rect_key_num3.BottomRight().x=rect_key_num3.TopLeft().x+56;
rect_key_num3.BottomRight().y=rect_key_num3.TopLeft().y+56;
bmp_btn_num3.Create(NULL,WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON|BS_OWNERDRAW,
rect_key_num3,this,IDC_SUB_DAIL_KEY3);
bmp_btn_num3.LoadBitmaps(IDB_SUB_DIAL_KEY3_01,
IDB_SUB_DIAL_KEY3_02,
IDB_SUB_DIAL_KEY3_01,NULL
);
bmp_btn_num3.AutoLoad(IDB_SUB_DIAL_KEY3_01,this);
////////////////数字按键4//////////////////////////////////////////
rect_key_num4.TopLeft().x=49;
rect_key_num4.TopLeft().y=169;
rect_key_num4.BottomRight().x=rect_key_num4.TopLeft().x+56;
rect_key_num4.BottomRight().y=rect_key_num4.TopLeft().y+56;
bmp_btn_num4.Create(NULL,WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON|BS_OWNERDRAW,
rect_key_num4,this,IDC_SUB_DAIL_KEY4);
bmp_btn_num4.LoadBitmaps(IDB_SUB_DIAL_KEY4_01,
IDB_SUB_DIAL_KEY4_02 ,
IDB_SUB_DIAL_KEY4_01 ,NULL);
bmp_btn_num4.AutoLoad(IDB_SUB_DIAL_KEY4_01,this);
////////////////数字按键5//////////////////////////////////////////
rect_key_num5.TopLeft().x=126;
rect_key_num5.TopLeft().y=169;
rect_key_num5.BottomRight().x=rect_key_num5.TopLeft().x+56;
rect_key_num5.BottomRight().y=rect_key_num5.TopLeft().y+56;
bmp_btn_num5.Create(NULL,WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON|BS_OWNERDRAW,
rect_key_num5,this,IDC_SUB_DAIL_KEY5);
bmp_btn_num5.LoadBitmaps(IDB_SUB_DIAL_KEY5_01,
IDB_SUB_DIAL_KEY5_02,
IDB_SUB_DIAL_KEY5_01,NULL);
bmp_btn_num5.AutoLoad(IDB_SUB_DIAL_KEY5_01,this);
////////////////数字按键6//////////////////////////////////////////
rect_key_num6.TopLeft().x=203;
rect_key_num6.TopLeft().y=169;
rect_key_num6.BottomRight().x=rect_key_num6.TopLeft().x+56;
rect_key_num6.BottomRight().y=rect_key_num6.TopLeft().y+56;
bmp_btn_num6.Create(NULL,WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON|BS_OWNERDRAW,
rect_key_num6,this,IDC_SUB_DAIL_KEY6);
bmp_btn_num6.LoadBitmaps(IDB_SUB_DIAL_KEY6_01,
IDB_SUB_DIAL_KEY6_02,
IDB_SUB_DIAL_KEY6_01,NULL);
bmp_btn_num6.AutoLoad(IDB_SUB_DIAL_KEY0_01,this);
////////////////数字按键7//////////////////////////////////////////
rect_key_num7.TopLeft().x=49;
rect_key_num7.TopLeft().y=243;
rect_key_num7.BottomRight().x=rect_key_num7.TopLeft().x+56;
rect_key_num7.BottomRight().y=rect_key_num7.TopLeft().y+56;
bmp_btn_num7.Create(NULL,WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON|BS_OWNERDRAW,
rect_key_num7,this,IDC_SUB_DAIL_KEY7);
bmp_btn_num7.LoadBitmaps(IDB_SUB_DIAL_KEY7_01,
IDB_SUB_DIAL_KEY7_02,
IDB_SUB_DIAL_KEY7_01,NULL);
bmp_btn_num7.AutoLoad(IDB_SUB_DIAL_KEY7_01,this);
////////////////数字按键8//////////////////////////////////////////
rect_key_num8.TopLeft().x=126;
rect_key_num8.TopLeft().y=243;
rect_key_num8.BottomRight().x=rect_key_num8.TopLeft().x+56;
rect_key_num8.BottomRight().y=rect_key_num8.TopLeft().y+56;
bmp_btn_num8.Create(NULL,WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON|BS_OWNERDRAW,
rect_key_num8,this,IDC_SUB_DAIL_KEY8);
bmp_btn_num8.LoadBitmaps(IDB_SUB_DIAL_KEY8_01,
IDB_SUB_DIAL_KEY8_02,
IDB_SUB_DIAL_KEY8_01,NULL);
bmp_btn_num8.AutoLoad(IDB_SUB_DIAL_KEY8_01,this);
////////////////数字按键9//////////////////////////////////////////
rect_key_num9.TopLeft().x=203;
rect_key_num9.TopLeft().y=243;
rect_key_num9.BottomRight().x=rect_key_num9.TopLeft().x+56;
rect_key_num9.BottomRight().y=rect_key_num9.TopLeft().y+56;
bmp_btn_num9.Create(NULL,WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON|BS_OWNERDRAW,
rect_key_num9,this,IDC_SUB_DAIL_KEY9);
bmp_btn_num9.LoadBitmaps(IDB_SUB_DIAL_KEY9_01,
IDB_SUB_DIAL_KEY9_02,
IDB_SUB_DIAL_KEY9_01,NULL );
bmp_btn_num9.AutoLoad(IDB_SUB_DIAL_KEY0_01,this);
////////////////数字按键井//////////////////////////////////////////
rect_key_num_jing.TopLeft().x=203;
rect_key_num_jing.TopLeft().y=318;
rect_key_num_jing.BottomRight().x=rect_key_num_jing.TopLeft().x+56;
rect_key_num_jing.BottomRight().y=rect_key_num_jing.TopLeft().y+56;
bmp_btn_numjing.Create(NULL,WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON|BS_OWNERDRAW,
rect_key_num_jing,this,IDC_SUB_DAIL_KEYjing);
bmp_btn_numjing.LoadBitmaps(IDB_SUB_DIAL_KEYjing_01,
IDB_SUB_DIAL_KEYjing_02,
IDB_SUB_DIAL_KEYjing_01,NULL);
bmp_btn_numjing.AutoLoad(IDB_SUB_DIAL_KEYjing_01,this);
////////////////数字按键 * //////////////////////////////////////////
rect_key_num_mi.TopLeft().x=49;
rect_key_num_mi.TopLeft().y=318;
rect_key_num_mi.BottomRight().x=rect_key_num_mi.TopLeft().x+56;
rect_key_num_mi.BottomRight().y=rect_key_num_mi.TopLeft().y+56;
bmp_btn_nummi.Create(NULL,WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON|BS_OWNERDRAW,
rect_key_num_mi,this,IDC_SUB_DAIL_KEYmi);
bmp_btn_nummi.LoadBitmaps(IDB_SUB_DIAL_KEYmi_01,
IDB_SUB_DIAL_KEYmi_02,
IDB_SUB_DIAL_KEYmi_01,NULL );
bmp_btn_nummi.AutoLoad(IDB_SUB_DIAL_KEYmi_01,this);
////////////////////////////////按键背板///////////////////////////////////////////////
rect_key_panel.TopLeft().x=32;
rect_key_panel.TopLeft().y=74;
rect_key_panel.BottomRight().x=rect_key_panel.TopLeft().x+244;
rect_key_panel.BottomRight().y=rect_key_panel.TopLeft().y+324;
m_stc_key_bkpanel.Create(NULL,WS_CHILD|WS_VISIBLE|SS_BITMAP|SS_CENTERIMAGE,
rect_key_panel,this, IDS_KEY_PANEL);
((CStatic*)GetDlgItem(IDS_KEY_PANEL ))->SetBitmap(
::LoadBitmap(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDB_SUB_DAIL_PANNEL)));
((CStatic*)(GetDlgItem(IDS_KEY_PANEL )))->ShowWindow(SW_SHOW);
//////////////////////////功能键 挂断//////////////////
rect_key_func_hangup.TopLeft().x=52;
rect_key_func_hangup.TopLeft().y=416;
rect_key_func_hangup.BottomRight().x=rect_key_func_hangup.TopLeft().x +96;
rect_key_func_hangup.BottomRight().y=rect_key_func_hangup.TopLeft().y +52;
bmp_btn_func_hangup.Create(NULL,WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON|BS_OWNERDRAW,
rect_key_func_hangup,this,IDC_SUB_KEY_FUNC_HANGUP);
bmp_btn_func_hangup.LoadBitmaps(IDB_SUB_BTFUNC_REFUSE_01,
IDB_SUB_BTFUNC_REFUSE_02,
IDB_SUB_BTFUNC_REFUSE_01,NULL);
bmp_btn_func_hangup.AutoLoad(IDB_SUB_BTFUNC_REFUSE_01,this);
//////////////////////////功能按键 退格/////////////////////
rect_key_func_bs.TopLeft().x=152;
rect_key_func_bs.TopLeft().y =416;
rect_key_func_bs.BottomRight().x=rect_key_func_bs.TopLeft().x +96;
rect_key_func_bs.BottomRight().y=rect_key_func_bs.TopLeft().y +52;
bmp_btn_func_bs.Create(NULL,WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON|BS_OWNERDRAW,
rect_key_func_bs,this,IDC_SUB_KEY_FUNC_BS);
bmp_btn_func_bs.LoadBitmaps(IDB_SUB_BTFUNC_CANCEL_01,
IDB_SUB_BTFUNC_CANCEL_02,
IDB_SUB_BTFUNC_CANCEL_01,NULL);
bmp_btn_func_bs.AutoLoad(IDB_SUB_BTFUNC_CANCEL_01,this);
flg_btn_switch= BTN_SWITCH_DESTROYED ;
/////////////////////////蓝牙跳顶按键////////////////////////
rect_key_jumpto_top.TopLeft().x=0;
rect_key_jumpto_top.TopLeft().y =0;
rect_key_jumpto_top.BottomRight().x=rect_key_jumpto_top.TopLeft().x +276;
rect_key_jumpto_top.BottomRight().y=rect_key_jumpto_top.TopLeft().y +68;
bmp_btn_jumptotop.Create(NULL,WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON|BS_OWNERDRAW,
rect_key_jumpto_top,this,IDC_SUB_KEY_JUMPTOTOP);
bmp_btn_jumptotop.LoadBitmaps(IDB_SUB_KEY_JUMPTOTOP,
IDB_SUB_KEY_JUMPTOTOP,
IDB_SUB_KEY_JUMPTOTOP,NULL);
bmp_btn_jumptotop.AutoLoad(IDB_SUB_KEY_JUMPTOTOP,this);
////////////////////////////创建状态号码等的窗口///////////////////
rect_dsp_window.TopLeft().x=338;
rect_dsp_window.TopLeft().y=166;
rect_dsp_window.BottomRight().x= 742;
rect_dsp_window.BottomRight().y =302;
m_display_window.CreateDispWin( rect_dsp_window, this,BSCMD_DSP_WINDOW );
flg_display_window_status=DISPLAY_WINDOW_CREATE;
///////////////////////////配置蓝牙//////////////////////////////////
m_recv_index=0;
m_bta39cmd.BT_ConfigPort();
flg_call_status=BEING_DIALING_NUMBER;
/////////////////////////////自动获取状态/////////////////////////
SetTimer(IDT_QUERRY_STATUS,500,NULL);
m_bta39cmd.BT_THREAD_READ();
/////////////////////////////////设置字体/////////////////////////
ZeroMemory(&lf1,sizeof(lf1));
lf1.lfHeight=40;
lf1.lfWeight=FW_BOLD;
lf1.lfItalic=TRUE;
::lstrcpy(lf1.lfFaceName,_T("Times New Roman"));
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
///////////////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////////////
void CCallWnd::OnPaint()
{
CPaintDC dc(this); // device context for painting
/////////////////////////号码显示框/////////////////////
if(flg_call_status==BEING_DIALING_NUMBER)
{
if(flg_display_window_status==DISPLAY_WINDOW_DESTROYED)
{
m_display_window.CreateDispWin( rect_dsp_window, this,BSCMD_DSP_WINDOW );
flg_display_window_status=DISPLAY_WINDOW_CREATE;
}
flg_display_window_status;
CDC mem2CDC;
CBitmap bitmap2;
bitmap2.LoadBitmap(IDB_SUB_DIAL_WND);
mem2CDC.CreateCompatibleDC(NULL);
mem2CDC.SelectObject(&bitmap2) ;
dc.BitBlt(314,142,314+432,142+184,&mem2CDC,0,0,SRCCOPY);
//////////////////把声音转换按键改成退格按键////////////////
if(flg_btn_switch==BTN_SWITCH_CREATE)
{
flg_btn_switch=BTN_SWITCH_DESTROYED ;
bmp_btn_func_switch.DestroyWindow();////销毁退格键
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -