📄 callwnd.cpp
字号:
////更改为退格键
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);
}
//bmp_btn_func_switch.
}
///////////////////////////////////////////////////////////////////////////////////////
//////////////////////等待沙漏的背景图,滚动沙漏视图在OnTimer里/////////////////////////
///////////////////////////////////////////////////////////////////////////////////////
if(flg_call_status==WAITTING_FOR_ANSWER)
{
CDC mem3CDC;
CBitmap bitmap3;
bitmap3.LoadBitmap(IDB_SUB_DIAL_HINT_WAITING);
mem3CDC.CreateCompatibleDC(NULL);
mem3CDC.SelectObject(&bitmap3) ;
dc.BitBlt(314,142,314+416,142+188,&mem3CDC,0,0,SRCCOPY);
if(flg_display_window_status==DISPLAY_WINDOW_CREATE)
{
flg_display_window_status=DISPLAY_WINDOW_DESTROYED;
m_display_window.DestroyWindow();
}
///////////显示电话号码////////////
CClientDC screendc(this);
CString str;
str=dial_num;
CFont font;
font.CreateFontIndirect(&lf1);
screendc.SelectObject(&font);
screendc.SetBkColor(TRANSPARENT);
screendc.SetTextColor(RGB(250,250,250));
screendc.DrawText(str,CRect(300,55,750,120),DT_CENTER|DT_SINGLELINE|DT_BOTTOM);
////////////////更改 退格键为蓝牙手机转换按键////////////////
if(flg_btn_switch==BTN_SWITCH_DESTROYED)
{
flg_btn_switch= BTN_SWITCH_CREATE ;
bmp_btn_func_bs.DestroyWindow();////销毁退格键
////更改为转换键
bmp_btn_func_switch.Create(NULL,WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON|BS_OWNERDRAW,
rect_key_func_bs,this,IDC_SUB_KEY_FUNC_SWITCH);
bmp_btn_func_switch.LoadBitmaps(IDB_SUB_BTFUNC_SWITCH01,
IDB_SUB_BTFUNC_SWITCH02,
IDB_SUB_BTFUNC_SWITCH01,
NULL);
bmp_btn_func_switch.AutoLoad(IDB_SUB_BTFUNC_SWITCH01,this);
}
}
///////////////////提示重拨//////////////////////////////////////////////
// 在通话结束,或自己挂断,或无人接听的时候出现此界面/////////////
//////////////////////////////////////////////////////////////////////////
if(flg_call_status==HANGUP_PHONE_TO_REDIAL)
{
CDC mem5CDC;
CBitmap bitmap5;
bitmap5.LoadBitmap(IDB_SUB_DIAL_HINT_REDIAL);
mem5CDC.CreateCompatibleDC(NULL);
mem5CDC.SelectObject(&bitmap5) ;
dc.BitBlt(332,140,332+416,140+188,&mem5CDC,0,0,SRCCOPY);
if(flg_display_window_status==DISPLAY_WINDOW_CREATE)
{
flg_display_window_status=DISPLAY_WINDOW_DESTROYED;
m_display_window.DestroyWindow();
}
}
//////////////////////正在通话中////////////////////////////
if(flg_call_status==BEING_TALKING)
{
CDC mem6CDC;
CBitmap bitmap6;
bitmap6.LoadBitmap(IDB_SUB_DIAL_HINT_OVER);
mem6CDC.CreateCompatibleDC(NULL);
mem6CDC.SelectObject(&bitmap6) ;
dc.BitBlt(332,140,332+416,140+188,&mem6CDC,0,0,SRCCOPY);
}
//////////////////////////////////////////////////////////////////////////
}
/////////////////////////////////////////////////////////////
void CCallWnd::btn_func_hangup()
{
m_bta39cmd.BT_Write(ZCMD_HANGUP,2);
flg_call_status= HANGUP_PHONE_TO_REDIAL;
KillTimer(IDT_WAITING_FOR_ANSWER);
KillTimer(IDT_ROLLING_SANDCONTAINER);
this->InvalidateRect(&CRect(280,0,280+550,140+250));
this->UpdateWindow();
}
/////////////////////////////////////////////////
void CCallWnd::btn_func_bs()
{
if((dial_index>0))
{
dial_index--;
dial_num[dial_index]=NULL;
::SendMessage(hwnd_num_dsplywindow,WM_PAINT,0,0);
::InvalidateRect(hwnd_num_dsplywindow,rect_num_dsplywindow,TRUE);
::UpdateWindow(hwnd_num_dsplywindow);
}
}
//////////////////////////////////////////////
void CCallWnd::btn_func_get()
{
CString str,temp_str;
CClientDC dc(this);
memset(&ZCMD_DIAIL_NUMBER,NULL,22);
for(unsigned int i=0;i<dial_index;i++)
{
ZCMD_DIAIL_NUMBER[i+2]=dial_num[i];
}
ZCMD_DIAIL_NUMBER[dial_index+2]=0X29;
ZCMD_DIAIL_NUMBER[0]=0x20;
ZCMD_DIAIL_NUMBER[1]=0x28;
temp_str=ZCMD_DIAIL_NUMBER;
m_bta39cmd.BT_Write(ZCMD_DIAIL_NUMBER,temp_str.GetLength());
////////////////////进入 请稍候的界面////////////////////////////
//////////////字体设置//////////////
flg_call_status=WAITTING_FOR_ANSWER;
this->InvalidateRect(&CRect(280,0,280+550,140+250));
this->UpdateWindow();
SetTimer(IDT_ROLLING_SANDCONTAINER,80,NULL); //开始沙漏滚动的定时
SetTimer(IDT_WAITING_FOR_ANSWER,1000*50,0); //开启限时等待
SetTimer(IDT_AUTO_CONNECTING,1000*2,0);
}
//////////////////////////////////////////////
void CCallWnd::btn_func_call()
{
flg_call_status=BEING_DIALING_NUMBER;
this->InvalidateRect(&CRect(280,0,280+550,140+250));
this->UpdateWindow();
}
//////////////////////////////////////////////
//////////////////////////////////////////////
void CCallWnd::btn_func_return()
{
memset(&dial_num,NULL,20);
memset(&ZCMD_DIAIL_NUMBER,NULL,22);
dial_index=0;
this->OnCancel();
}
//////////////////////////////////////////////
void CCallWnd::btn_num0()
{
if(dial_index<=19)
{
dial_num[dial_index] = _T('0');
dial_index++;
::SendMessage(hwnd_num_dsplywindow,WM_PAINT,0,0);
::InvalidateRect(hwnd_num_dsplywindow,rect_num_dsplywindow,TRUE);
::UpdateWindow(hwnd_num_dsplywindow);
}
}
//////////////////////////////////////////////
void CCallWnd::btn_num1()
{
if(dial_index<=19)
{
dial_num[dial_index] = _T('1');
dial_index++;
::SendMessage(hwnd_num_dsplywindow,WM_PAINT,0,0);
::InvalidateRect(hwnd_num_dsplywindow,rect_num_dsplywindow,TRUE);
::UpdateWindow(hwnd_num_dsplywindow);
}
}
//////////////////////////////////////////////
void CCallWnd::btn_num2()
{
if(dial_index<=19)
{
dial_num[dial_index] = _T('2');
dial_index++;
::SendMessage(hwnd_num_dsplywindow,WM_PAINT,0,0);
::InvalidateRect(hwnd_num_dsplywindow,rect_num_dsplywindow,TRUE);
::UpdateWindow(hwnd_num_dsplywindow);
}
}
//////////////////////////////////////////////
void CCallWnd::btn_num3()
{
if(dial_index<=19)
{
dial_num[dial_index] = _T('3');
dial_index++;
::SendMessage(hwnd_num_dsplywindow,WM_PAINT,0,0);
::InvalidateRect(hwnd_num_dsplywindow,rect_num_dsplywindow,TRUE);
::UpdateWindow(hwnd_num_dsplywindow);
}
}
//////////////////////////////////////////////
//////////////////////////////////////////////
void CCallWnd::btn_num4()
{
if(dial_index<=19)
{
dial_num[dial_index] = _T('4');
dial_index++;
::SendMessage(hwnd_num_dsplywindow,WM_PAINT,0,0);
::InvalidateRect(hwnd_num_dsplywindow,rect_num_dsplywindow,TRUE);
::UpdateWindow(hwnd_num_dsplywindow);
}
}
//////////////////////////////////////////////
//////////////////////////////////////////////
void CCallWnd::btn_num5()
{
if(dial_index<=19)
{
dial_num[dial_index] = _T('5');
dial_index++;
::SendMessage(hwnd_num_dsplywindow,WM_PAINT,0,0);
::InvalidateRect(hwnd_num_dsplywindow,rect_num_dsplywindow,TRUE);
::UpdateWindow(hwnd_num_dsplywindow);
}
}
//////////////////////////////////////////////
//////////////////////////////////////////////
void CCallWnd::btn_num6()
{
if(dial_index<=19)
{
dial_num[dial_index] = _T('6');
dial_index++;
::SendMessage(hwnd_num_dsplywindow,WM_PAINT,0,0);
::InvalidateRect(hwnd_num_dsplywindow,rect_num_dsplywindow,TRUE);
::UpdateWindow(hwnd_num_dsplywindow);
}
}
//////////////////////////////////////////////
//////////////////////////////////////////////
void CCallWnd::btn_num7()
{
if(dial_index<=19)
{
dial_num[dial_index] = _T('7');
dial_index++;
::SendMessage(hwnd_num_dsplywindow,WM_PAINT,0,0);
::InvalidateRect(hwnd_num_dsplywindow,rect_num_dsplywindow,TRUE);
::UpdateWindow(hwnd_num_dsplywindow);
}
}
//////////////////////////////////////////////
//////////////////////////////////////////////
void CCallWnd::btn_num8()
{
if(dial_index<=19)
{
dial_num[dial_index] = _T('8');
dial_index++;
::SendMessage(hwnd_num_dsplywindow,WM_PAINT,0,0);
::InvalidateRect(hwnd_num_dsplywindow,rect_num_dsplywindow,TRUE);
::UpdateWindow(hwnd_num_dsplywindow);
}
}
//////////////////////////////////////////////
//////////////////////////////////////////////
void CCallWnd::btn_num9()
{
if(dial_index<=19)
{
dial_num[dial_index] = _T('9');
dial_index++;
::SendMessage(hwnd_num_dsplywindow,WM_PAINT,0,0);
::InvalidateRect(hwnd_num_dsplywindow,rect_num_dsplywindow,TRUE);
::UpdateWindow(hwnd_num_dsplywindow);
}
}
//////////////////////////////////////////////
void CCallWnd::btn_nummi()
{
if(dial_index<=19)
{
dial_num[dial_index] = _T('*');
dial_index++;
::SendMessage(hwnd_num_dsplywindow,WM_PAINT,0,0);
::InvalidateRect(hwnd_num_dsplywindow,rect_num_dsplywindow,TRUE);
::UpdateWindow(hwnd_num_dsplywindow);
}
}
///////////////////////////////////////////////////
void CCallWnd::btn_numjing()
{
if(dial_index<=19)
{
dial_num[dial_index] = _T('#');
dial_index++;
::SendMessage(hwnd_num_dsplywindow,WM_PAINT,0,0);
::InvalidateRect(hwnd_num_dsplywindow,rect_num_dsplywindow,TRUE);
::UpdateWindow(hwnd_num_dsplywindow);
}
}
////////////////////////////////////////////////////////////
void CCallWnd::btn_jumptotop()
{
}
///////////////////////////////////////////////////////////////
void CCallWnd::btn_func_switch()
{
}
void CCallWnd::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default
if(nIDEvent==IDT_WAITING_FOR_ANSWER)
{
//////////////////关闭沙漏滚动////////////////
KillTimer(IDT_ROLLING_SANDCONTAINER);
//////////////////////如果限时时间到还没接听就进入重拨的提示画面/////////////////
flg_call_status= HANGUP_PHONE_TO_REDIAL;
this->InvalidateRect(&CRect(280,0,280+550,140+250));
this->UpdateWindow();
}
////////////////////////滚动沙漏的视图///////////////////////////////
if(nIDEvent==IDT_ROLLING_SANDCONTAINER)
{
rolling_index++;
if(rolling_index==13)
{
rolling_index=0;
}
CDC mem4CDC;
CClientDC dc (this);
CRect rect;
this->GetClientRect(rect);
CBitmap bitmap4;
bitmap4.LoadBitmap(rolling[rolling_index]);
mem4CDC.CreateCompatibleDC(NULL);
mem4CDC.SelectObject(&bitmap4);
dc.BitBlt(508,168,508+64,168+65, &mem4CDC, 0,0,SRCCOPY);
}
/////////////////////////////////////////////////////////////
if(nIDEvent==IDT_QUERRY_STATUS)
{
KillTimer(IDT_WAITING_FOR_ANSWER);////
m_bta39cmd.BT_Write(ZCMD_QUERRY_STATUS,2);
if(FLG_bt_into_talking==1)
{
FLG_bt_into_talking=0;
CDC mem5CDC;
CClientDC dc (this);
CRect rect;
this->GetClientRect(rect);
CBitmap bitmap5;
bitmap5.LoadBitmap(IDB_SUB_DIAL_HINT_OVER);
mem5CDC.CreateCompatibleDC(NULL);
mem5CDC.SelectObject(&bitmap5) ;
dc.BitBlt(508,168,508+64,168+65,&mem5CDC,0,0,SRCCOPY);
}
//////////////////////////////////////////////
if(FLG_bt_release==1)
{
FLG_bt_release=0;
CDC mem6CDC;
CClientDC dc (this);
CRect rect;
this->GetClientRect(rect);
CBitmap bitmap6;
bitmap6.LoadBitmap(IDB_SUB_DIAL_HINT_REDIAL);
mem6CDC.CreateCompatibleDC(NULL);
mem6CDC.SelectObject(&bitmap6) ;
dc.BitBlt(508,168,508+64,168+65,&mem6CDC,0,0,SRCCOPY);
}
}
if(nIDEvent==IDT_AUTO_CONNECTING)
{
m_bta39cmd.BT_Write(ZCMD_AUTO_CONNECTING,2);
}
CDialog::OnTimer(nIDEvent);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -