| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133 |
- #include "StdAfx.h"
- #include "ViewRes.h"
- #include "DisplayWnd.h"
- #include "ViewMgr.h"
- #include "resource.h"
- IMPLEMENT_DYNAMIC(CViewRes, CListCtrl)
- CViewRes::CViewRes(void)
- {
- }
- CViewRes::~CViewRes(void)
- {
- }
- BEGIN_MESSAGE_MAP(CViewRes, CListCtrl)
- ON_NOTIFY_REFLECT(NM_CLICK, &CViewRes::OnNMClick)
- END_MESSAGE_MAP()
- /*****************************************************************
- **【函数名称】 create
- **【函数功能】 控件初始化
- **【参数】
- **【返回值】
- ****************************************************************/
- bool CViewRes::create( CDisplayWnd* pWnd )
- {
- ASSERT(pWnd != NULL);
- CString Name;
- Name.LoadString(IDS_STR_VIEW_RES);
- // 创建pane
- if (!m_Pane.Create(Name, pWnd, CRect(0, 0, 100, 100), TRUE, IDS_STR_VIEW_RES,
- WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | CBRS_LEFT | CBRS_FLOAT_MULTI))
- {
- TRACE0("创建资源窗口失败");
- return false;
- }
- m_Pane.EnableDocking(CBRS_ALIGN_ANY);
- //创建控件
- if(!Create(WS_CHILD | WS_VISIBLE | WS_VSCROLL | LVS_ICON | LVS_ALIGNTOP | LVS_SINGLESEL,
- CRect(0, 0, 0, 0), &m_Pane, IDC_LIST_RES))
- {
- TRACE0("创建资源列表控件失败\n");
- return false;
- }
- // 设置关联图标
- CImageList imgList;
- imgList.Create(32, 32, ILC_MASK|ILC_COLOR32, 3, 1);
- imgList.Add(AfxGetApp()->LoadIcon(IDI_ICON_EXTEN));
- imgList.Add(AfxGetApp()->LoadIcon(IDI_ICON_TRUNK));
- imgList.Add(AfxGetApp()->LoadIcon(IDI_ICON_VOIP));
- imgList.Add(AfxGetApp()->LoadIcon(IDI_ICON_IVR));
- imgList.Add(AfxGetApp()->LoadIcon(IDI_ICON_MEETING));
- imgList.Add(AfxGetApp()->LoadIcon(IDI_ICON_FAX));
- SetImageList(&imgList, TVSIL_NORMAL);
- imgList.Detach();
- pWnd->OnNewPane(&m_Pane);
- return true;
- }
- /*****************************************************************
- **【函数名称】 newSize
- **【函数功能】 调整控件大小
- **【参数】
- **【返回值】
- ****************************************************************/
- void CViewRes::newSize( CRect& Rect )
- {
- if(IsWindow(GetSafeHwnd()))
- SetWindowPos(NULL, Rect.left, Rect.top, Rect.Width(), Rect.Height(), SWP_NOACTIVATE | SWP_NOZORDER);
- }
- /*****************************************************************
- **【函数名称】 newRes
- **【函数功能】 新增资源类型
- **【参数】
- **【返回值】
- ****************************************************************/
- void CViewRes::newRes( UINT ResType )
- {
- int Count = GetItemCount();
- switch(ResType)
- {
- case DEV_RES_TYPE_EXT:
- SetItemData(InsertItem(Count, _T("分机资源"), 0), ResType);
- break;
- case DEV_RES_TYPE_TRUNK:
- SetItemData(InsertItem(Count, _T("中继资源"), 1), ResType);
- break;
- case DEV_RES_TYPE_VOIP:
- SetItemData(InsertItem(Count, _T("VOIP资源"), 2), ResType);
- break;
- case DEV_RES_TYPE_IVR:
- SetItemData(InsertItem(Count, _T("IVR线路资源"), 3), ResType);
- break;
- case DEV_RES_TYPE_CONFERENCE:
- SetItemData(InsertItem(Count, _T("会议资源"), 4), ResType);
- break;
- case DEV_RES_TYPE_FAX:
- SetItemData(InsertItem(Count, _T("传真资源"), 5), ResType);
- break;
- }
- }
- void CViewRes::OnNMClick(NMHDR *pNMHDR, LRESULT *pResult)
- {
- LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast<LPNMITEMACTIVATE>(pNMHDR);
- // TODO: 在此添加控件通知处理程序代码
- if(pNMItemActivate->iItem != -1)
- {
- UINT ResType = GetItemData(pNMItemActivate->iItem);
- CViewMgr::GetInstance().showResView(ResType);
- SetItemState(pNMItemActivate->iItem, LVIS_SELECTED, LVIF_STATE);
- *pResult = 0;
- }
- }
|