⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 callwnd.cpp

📁 此程序是基于BC4的蓝牙CE应用程序
💻 CPP
📖 第 1 页 / 共 2 页
字号:
          ////更改为退格键
		 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 + -