📄 phonerecview.cpp
字号:
btnarray[ i ]->SetIcon( m_LargeImageList.ExtractIcon( 6 ) );
}
}
//btnarray[ 16 ]->SetIcon( m_LargeImageList.ExtractIcon( 6 ) );
}
/////////////////////////////////////////////////////////////////////////////
// CPhoneRecView printing
BOOL CPhoneRecView::OnPreparePrinting(CPrintInfo* pInfo)
{
// default preparation
return DoPreparePrinting(pInfo);
}
void CPhoneRecView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
// TODO: add extra initialization before printing
}
void CPhoneRecView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
// TODO: add cleanup after printing
}
void CPhoneRecView::OnPrint(CDC* pDC, CPrintInfo* /*pInfo*/)
{
// TODO: add customized printing code here
}
/////////////////////////////////////////////////////////////////////////////
// CPhoneRecView diagnostics
#ifdef _DEBUG
void CPhoneRecView::AssertValid() const
{
CFormView::AssertValid();
}
void CPhoneRecView::Dump(CDumpContext& dc) const
{
CFormView::Dump(dc);
}
CPhoneRecDoc* CPhoneRecView::GetDocument() // non-debug version is inline
{
ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CPhoneRecDoc)));
return (CPhoneRecDoc*)m_pDocument;
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CPhoneRecView message handlers
void CPhoneRecView::OnPaint()
{
CPaintDC dc(this); // device context for painting
COLORREF color( RGB( 109, 158, 231 ) ); // 设置背景颜色
CBrush brush;
RECT rect;
GetClientRect( &rect );
dc.SetBkMode( TRANSPARENT );
brush.CreateSolidBrush( color );
dc.SelectObject( &brush );
dc.FillRect( &rect, &brush );
ReleaseDC( &dc );
}
void CPhoneRecView::OnDestroy()
{
g_dbCust.Close();
m_device.CloseDevice();
CFormView::OnDestroy();
}
BEGIN_EVENTSINK_MAP(CPhoneRecView, CFormView)
//{{AFX_EVENTSINK_MAP(CPhoneRecView)
ON_EVENT(CPhoneRecView, IDC_PHONICCTRL, 1 /* State */, OnStatePhonicctrl, VTS_I4 VTS_I4 VTS_I4 VTS_I4)
ON_EVENT(CPhoneRecView, IDC_PHONICCTRL, 4 /* CallIn */, OnCallInPhonicctrl, VTS_I4 VTS_I4 VTS_BSTR VTS_BSTR)
ON_EVENT(CPhoneRecView, IDC_PHONICCTRL, 2 /* DeviceTimer */, OnDeviceTimerPhonicctrl, VTS_I4 VTS_I4)
ON_EVENT(CPhoneRecView, IDC_PHONICCTRL, 3 /* Idle */, OnIdlePhonicctrl, VTS_I4 VTS_I4)
ON_EVENT(CPhoneRecView, IDC_PHONICCTRL, 5 /* Answer */, OnAnswerPhonicctrl, VTS_I4 VTS_I4)
ON_EVENT(CPhoneRecView, IDC_PHONICCTRL, 6 /* CallOutFinish */, OnCallOutFinishPhonicctrl, VTS_I4 VTS_I4)
ON_EVENT(CPhoneRecView, IDC_PHONICCTRL, 15 /* CallFail */, OnCallFailPhonicctrl, VTS_I4 VTS_I4 VTS_I4)
ON_EVENT(CPhoneRecView, IDC_PHONICCTRL, 7 /* Hangup */, OnHangupPhonicctrl, VTS_I4 VTS_I4 VTS_I4)
ON_EVENT(CPhoneRecView, IDC_PHONICCTRL, 8 /* DTMF */, OnDTMFPhonicctrl, VTS_I4 VTS_I4 VTS_I4)
ON_EVENT(CPhoneRecView, IDC_PHONICCTRL, 10 /* RecordEnd */, OnRecordEndPhonicctrl, VTS_I4 VTS_I4 VTS_I4)
ON_EVENT(CPhoneRecView, IDC_PHONICCTRL, 9 /* PlayEnd */, OnPlayEndPhonicctrl, VTS_I4 VTS_I4 VTS_I4)
ON_EVENT(CPhoneRecView, IDC_PHONICCTRL, 13 /* Flash */, OnFlashPhonicctrl, VTS_I4 VTS_I4)
ON_EVENT(CPhoneRecView, IDC_PHONICCTRL, 18 /* Ring */, OnRingPhonicctrl, VTS_I4 VTS_I4)
ON_EVENT(CPhoneRecView, IDC_PHONICCTRL, 21 /* Hanging */, OnHangingPhonicctrl, VTS_I4 VTS_I4)
//}}AFX_EVENTSINK_MAP
END_EVENTSINK_MAP()
void CPhoneRecView::OnStatePhonicctrl(long channelType, long channelID, long newChannelState, long oldChannelState)
{
GetChannelObject( channelType, channelID )->OnState( newChannelState );
}
void CPhoneRecView::OnCallInPhonicctrl(long channelType, long channelID, LPCTSTR callerID, LPCTSTR phoneNumber)
{
CChannel * pChannel = NULL;
pChannel = GetChannelObject( channelType, channelID );
pChannel->OnCallIn( (char*)callerID, ( char* )phoneNumber );
m_pFlashArray[ pChannel->GetLineID() ]->FlashText( FALSE );
m_pFlashArray[ pChannel->GetLineID() ]->SetText( callerID );
m_pFlashArray[ pChannel->GetLineID() ]->SetTextColor(RGB( 0,255,0));
m_pFlashArray[ pChannel->GetLineID() ]->FlashText( TRUE );
m_pFlashArray[ pChannel->GetLineID() ]->SetFontBold(TRUE);
//GetChannelObject( channelType, channelID )->OnCallIn( (char*)callerID, ( char* )phoneNumber );
}
void CPhoneRecView::OnDeviceTimerPhonicctrl(long channelType, long channelID)
{
CChannel * pChan = GetChannelObject( channelType, channelID );
if( pChan)
pChan->OnDeviceTimer( );
}
void CPhoneRecView::OnIdlePhonicctrl(long channelType, long channelID)
{
CChannel * pChan = GetChannelObject( channelType, channelID );
if( pChan)
pChan->OnIdle( );
}
void CPhoneRecView::OnAnswerPhonicctrl(long channelType, long channelID)
{
CChannel * pChan = GetChannelObject( channelType, channelID );
if( pChan)
pChan->OnAnswer( );
}
void CPhoneRecView::OnCallOutFinishPhonicctrl(long channelType, long channelID)
{
CChannel * pChan = GetChannelObject( channelType, channelID );
if( pChan)
pChan->OnCallOutFinish();
}
void CPhoneRecView::OnCallFailPhonicctrl(long channelType, long channelID, long cause)
{
CChannel * pChan = GetChannelObject( channelType, channelID );
if( pChan)
pChan->OnCallFail( cause );
}
void CPhoneRecView::OnHangupPhonicctrl(long channelType, long channelID, long cause)
{
CChannel * pChan = GetChannelObject( channelType, channelID );
if( pChan)
pChan->OnHangup( cause );
}
void CPhoneRecView::OnDTMFPhonicctrl(long channelType, long channelID, long dtmfCode)
{
char tempdtmfCode = ( char )dtmfCode;
CChannel * pChannel = NULL;
pChannel = GetChannelObject( channelType, channelID );
pChannel->OnDTMF( tempdtmfCode );
m_pFlashArray[ pChannel->GetLineID() ]->FlashText( FALSE );
m_pFlashArray[ pChannel->GetLineID() ]->SetText( pChannel->GetDTMF() );
m_pFlashArray[ pChannel->GetLineID() ]->SetTextColor(RGB( 0,255,0));
m_pFlashArray[ pChannel->GetLineID() ]->FlashText( TRUE );
m_pFlashArray[ pChannel->GetLineID() ]->SetFontBold(TRUE);
// GetChannelObject( channelType, channelID )->OnDTMF( tempdtmfCode );
}
void CPhoneRecView::OnRecordEndPhonicctrl(long channelType, long channelID, long completeSize)
{
GetChannelObject( channelType, channelID )->OnRecordEnd( completeSize );
}
void CPhoneRecView::OnPlayEndPhonicctrl(long channelType, long channelID, long completeSize)
{
CChannel* pChan = GetChannelObject( channelType, channelID );
if( pChan)
pChan->OnPlayEnd( completeSize );
}
void CPhoneRecView::OnFlashPhonicctrl(long channelType, long channelID)
{
GetChannelObject( channelType, channelID )->OnFlash();
}
void CPhoneRecView::OnRingPhonicctrl(long channelType, long channelID)
{
CChannel* pChannel = GetChannelObject( channelType, channelID );
if( pChannel )
pChannel->OnRing();
}
void CPhoneRecView::OnHangingPhonicctrl(long channelType, long channelID)
{
// GetChannelObject( channelType, channelID )->OnHanging();
CChannel* pChannel = GetChannelObject( channelType, channelID );
if( pChannel )
pChannel->OnHanging();
}
//启动关闭监听
void CPhoneRecView::OnCheck1()
{
CString str;
const MSG* pMsg = GetCurrentMessage();
CWnd * hwnd;
//this->GetDlgItemText(pMsg->wParam,str);
hwnd = this->GetDlgItem(pMsg->wParam);
int iCurrentBtn = this->GetCurrentHitButtonSerial(hwnd->m_hWnd);
CChannel * pDestChannel = GetChannelObject( 0 );
if (m_nPushedBtnIdx >= 0 ) //前一个checkBox停止监听,并且弹起
{
m_pButtonArray[ m_nPushedBtnIdx ]->SetCheck( 0 );
if ( pDestChannel )
{
pDestChannel->BreakListen();
}
}
if( iCurrentBtn == -1 || m_nPushedBtnIdx == iCurrentBtn)
{
m_nPushedBtnIdx = -1;
return;
}
else
{
m_nPushedBtnIdx = iCurrentBtn;
CChannel * pSrcChannel = GetChannelObject( m_nPushedBtnIdx );
m_pButtonArray[ m_nPushedBtnIdx ]->SetCheck( 1 );
if( pSrcChannel && pDestChannel )
{
if(pSrcChannel->GetChannelType() == CH_MAX || pDestChannel->GetChannelType() == CH_MAX )
return;
pDestChannel->ListenTo( pSrcChannel->GetChannelType(), pSrcChannel->GetChannelID() );
}
}
/*
if( m_nPushedBtnIdx == nButtonID - IDC_CHECK1 + 1 ) //如果同一个checkbox停止监听,并且弹起
{
m_nPushedBtnIdx = -1;
if( pDestChannel )
{
pDestChannel->BreakListen();
}
}
else
{
//监听被选中的checkBox
m_nPushedBtnIdx = nButtonID - IDC_CHECK1 + 1;
CChannel * pSrcChannel = GetChannelObject( m_nPushedBtnIdx );
m_pButtonArray[ m_nPushedBtnIdx ]->SetCheck( 1 );
if( pSrcChannel && pDestChannel )
{
if(pSrcChannel->GetChannelType() == CH_MAX || pDestChannel->GetChannelType() == CH_MAX )
return;
pDestChannel->ListenTo( pSrcChannel->GetChannelType(), pSrcChannel->GetChannelID() );
}
}
*/
}
int CPhoneRecView::GetCurrentHitButtonSerial(HANDLE hHandle)
{
for( int j = 0 ; j < 32 ; j++ )
{
if( m_pButtonArray[ j ]->m_hWnd == hHandle)
return j;
}
return -1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -