| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174 |
- // ViewFax.cpp : 实现文件
- //
- #include "stdafx.h"
- #include "VoiceStation.h"
- #include "ViewFax.h"
- #include "DeviceMgr.h"
- #include "DevFax.h"
- #include "LineAudio.h"
- #include "DisplayWnd.h"
- // CViewFax
- IMPLEMENT_DYNAMIC(CViewFax, CListCtrl)
- CViewFax::CViewFax()
- {
- }
- CViewFax::~CViewFax()
- {
- }
- /*****************************************************************
- **【函数名称】 __indexItem
- **【函数功能】 索引资源
- **【参数】
- **【返回值】
- ****************************************************************/
- int CViewFax::__indexItem( UINT ResId )
- {
- int Count = GetItemCount();
- for (int i=0; i < Count; ++i)
- {
- if (GetItemData(i) == ResId)
- return i;
- }
- return -1;
- }
- /*****************************************************************
- **【函数名称】 __addRes
- **【函数功能】 向List中添加资源
- **【参数】
- **【返回值】
- ****************************************************************/
- int CViewFax::__addRes( UINT ResId )
- {
- int Index = GetItemCount();
- CString strResID;
- strResID.Format(_T("%d"), ResId);
- Index = InsertItem(Index, strResID);
- SetItemData(Index, ResId);
- return Index;
- }
- /*****************************************************************
- **【函数名称】 __delRes
- **【函数功能】 删除资源
- **【参数】
- **【返回值】
- ****************************************************************/
- void CViewFax::__delRes( UINT ResId )
- {
- int Index = __indexItem(ResId);
- if (Index != -1)
- {
- // 界面删除行
- DeleteItem(Index);
- }
- }
- /*****************************************************************
- **【函数名称】 create
- **【函数功能】 控件初始化
- **【参数】
- **【返回值】
- ****************************************************************/
- bool CViewFax::create( CDisplayWnd* pWnd )
- {
- ASSERT(pWnd != NULL);
- CString Name;
- Name.LoadString(IDS_STR_VIEW_FAX);
- // 创建pane
- if (!m_Pane.Create(Name, pWnd, CRect(0, 0, 400, 400), TRUE, IDS_STR_VIEW_FAX,
- 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, IDC_LIST_LINE))
- {
- TRACE0("创建设备资源控件失败\n");
- return false;
- }
- SendMessage(LVM_SETEXTENDEDLISTVIEWSTYLE, 0, LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES);
- InsertColumn(COLUMN_RES_ID, _T("线路ID"), LVCFMT_LEFT, 140);
- InsertColumn(COLUMN_RES_STATE, _T("状态"), LVCFMT_LEFT, 140);
- InsertColumn(COLUMN_RES_ASSO_LINE, _T("关联线路"), LVCFMT_LEFT, 140);
- InsertColumn(COLUMN_RES_FAX_FILE, _T("传真文件"), LVCFMT_LEFT, 140);
- pWnd->OnNewPane(&m_Pane);
- return true;
- }
- /*****************************************************************
- **【函数名称】 onFaxStateUpdated
- **【函数功能】 传真状态更新处理函数
- **【参数】
- **【返回值】
- ****************************************************************/
- void CViewFax::onFaxStateUpdated( int ResId )
- {
- CDevFax* pDev = CDeviceMgr::GetInstance().getFaxByID(ResId);
- ASSERT(pDev != NULL);
- if(pDev == NULL)
- return;
- int Index = __indexItem(ResId);
- if (Index == -1) // 未找到对应资源,则先创建
- Index = __addRes(ResId); // 创建资源
- ASSERT(Index != -1);
- CString Data;
- Data = pDev->state();
- SetItemText(Index, COLUMN_RES_STATE, Data);
- CLineAudio* pLine = pDev->getAssoLine();
- if(pLine == NULL)
- Data = _T("");
- else
- Data.Format(_T("%d"), pLine->id());
- SetItemText(Index, COLUMN_RES_ASSO_LINE, Data);
- SetItemText(Index, COLUMN_RES_STATE, pDev->faxFile());
- }
- /*****************************************************************
- **【函数名称】 newSize
- **【函数功能】 调整控件大小
- **【参数】
- **【返回值】
- ****************************************************************/
- void CViewFax::newSize( CRect& Rect )
- {
- if(IsWindow(GetSafeHwnd()))
- SetWindowPos(NULL, Rect.left, Rect.top, Rect.Width(), Rect.Height(), SWP_NOACTIVATE | SWP_NOZORDER);
- }
- BEGIN_MESSAGE_MAP(CViewFax, CListCtrl)
- END_MESSAGE_MAP()
- // CViewFax 消息处理程序
|