| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193 |
- // ViewResBase.cpp : 实现文件
- //
- #include "stdafx.h"
- #include "CTI.h"
- #include "ViewResBase.h"
- #include "DisplayWnd.h"
- // CViewResBase
- IMPLEMENT_DYNAMIC(CViewResBase, CListCtrl)
- CViewResBase::CViewResBase(void)
- {
- }
- CViewResBase::~CViewResBase(void)
- {
- }
- /*****************************************************************
- **【函数名称】 _indexItem
- **【函数功能】 索引资源
- **【参数】
- **【返回值】
- ****************************************************************/
- int CViewResBase::_indexItem( UINT ResId )
- {
- int Count = GetItemCount();
- for (int i=0; i < Count; ++i)
- {
- if (GetItemData(i) == ResId)
- return i;
- }
- return -1;
- }
- /*****************************************************************
- **【函数名称】 _addRes
- **【函数功能】 向List中添加资源
- **【参数】
- **【返回值】
- ****************************************************************/
- int CViewResBase::_addRes( UINT ResId )
- {
- int Index = GetItemCount();
- CString strResID;
- strResID.Format(_T("%d"), ResId);
- Index = InsertItem(Index, strResID);
- SetItemData(Index, ResId);
- return Index;
- }
- /*****************************************************************
- **【函数名称】 _delRes
- **【函数功能】 删除资源
- **【参数】
- **【返回值】
- ****************************************************************/
- void CViewResBase::_delRes( UINT ResId )
- {
- int Index = _indexItem(ResId);
- if (Index != -1)
- {
- // 界面删除
- DeleteItem(Index);
- }
- }
- /*****************************************************************
- **【函数名称】 create
- **【函数功能】 控件初始化
- **【参数】
- **【返回值】
- ****************************************************************/
- bool CViewResBase::create( CDisplayWnd* pWnd, UINT PanId, UINT ListId )
- {
- ASSERT(pWnd != NULL);
- CString Name;
- Name.LoadString(PanId);
- // 创建pane
- if (!m_Pane.Create(Name, pWnd, CRect(0, 0, 400, 400), TRUE, PanId,
- WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | CBRS_TOP | CBRS_FLOAT_MULTI))
- {
- TRACE0("创建设备资源窗口失败");
- return false;
- }
- m_Pane.EnableDocking(CBRS_ALIGN_ANY);
- //创建控件
- if(!Create(WS_CHILD | WS_VISIBLE | WS_VSCROLL | LVS_REPORT | LVS_SORTASCENDING,
- CRect(0, 0, 0, 0), &m_Pane, ListId))
- {
- TRACE0("创建设备资源控件失败\n");
- return false;
- }
- SendMessage(LVM_SETEXTENDEDLISTVIEWSTYLE, 0, LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES);
- InsertColumn(COLUMN_RES_ID, _T("资源ID"), LVCFMT_LEFT, 130);
- InsertColumn(COLUMN_RES_STATE, _T("状态"), LVCFMT_LEFT, 130);
- InsertColumn(COLUMN_RES_CALLER, _T("主叫"), LVCFMT_LEFT, 130);
- InsertColumn(COLUMN_RES_CALLEE, _T("被叫"), LVCFMT_LEFT, 130);
- InsertColumn(COLUMN_RES_TIME, _T("发生时间"), LVCFMT_LEFT, 130);
- pWnd->OnNewPane(&m_Pane);
- return true;
- }
- /*****************************************************************
- **【函数名称】 onResDetail
- **【函数功能】 资源明细的处理函数
- **【参数】
- **【返回值】
- ****************************************************************/
- void CViewResBase::onResDetail( EventResDetail *pResDetail )
- {
- ASSERT(pResDetail != NULL);
- UINT ResId = pResDetail->nResID;
- if (_indexItem(ResId) == -1)
- _addRes(ResId);
- }
- /*****************************************************************
- **【函数名称】 onResState
- **【函数功能】 资源状态处理函数
- **【参数】
- **【返回值】
- ****************************************************************/
- void CViewResBase::onResState( EventResStatus *pResStatus )
- {
- ASSERT(pResStatus != NULL);
- int Index = _indexItem(pResStatus->nResID);
- // 未找到指定资源,则创建该资源
- if (Index == -1)
- Index = _addRes(pResStatus->nResID);
- ASSERT(Index != -1);
- CString Data;
- _mapStateToString(pResStatus->nState, Data);
- SetItemText(Index, COLUMN_RES_STATE, Data);
- SetItemText(Index, COLUMN_RES_CALLER, pResStatus->szCallerNum);
- SetItemText(Index, COLUMN_RES_CALLEE, pResStatus->szCalleeNum);
- CTime Time = CTime::GetCurrentTime();
- Data = Time.Format(_T("%H:%M:%S"));
- SetItemText(Index, COLUMN_RES_TIME, Data);
- }
- /*****************************************************************
- **【函数名称】 newSize
- **【函数功能】 调整控件大小
- **【参数】
- **【返回值】
- ****************************************************************/
- void CViewResBase::newSize( CRect& Rect )
- {
- if(IsWindow(GetSafeHwnd()))
- SetWindowPos(NULL, Rect.left, Rect.top, Rect.Width(), Rect.Height(), SWP_NOACTIVATE | SWP_NOZORDER);
- }
- /*****************************************************************
- **【函数名称】 showTogether
- **【函数功能】 Tab模式显示控件
- **【参数】
- **【返回值】
- ****************************************************************/
- void CViewResBase::showTogether( CViewResBase* pView )
- {
- ASSERT(pView != NULL);
- m_Pane.AttachToTabWnd(&pView->m_Pane, DM_SHOW, TRUE);
- }
- BEGIN_MESSAGE_MAP(CViewResBase, CListCtrl)
- END_MESSAGE_MAP()
- // CViewResBase 消息处理程序
|