#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_LINE)); imgList.Add(AfxGetApp()->LoadIcon(IDI_ICON_FAX)); SetImageList(&imgList, TVSIL_NORMAL); imgList.Detach(); SetItemData(InsertItem(0, _T("线路资源"), 0), IDI_ICON_LINE); SetItemData(InsertItem(1, _T("传真资源"), 0), IDI_ICON_FAX); 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); } void CViewRes::OnNMClick(NMHDR *pNMHDR, LRESULT *pResult) { LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast(pNMHDR); // TODO: 在此添加控件通知处理程序代码 if(pNMItemActivate->iItem != -1) { UINT ResType = GetItemData(pNMItemActivate->iItem); if(ResType == IDI_ICON_LINE) CViewMgr::GetInstance().showLineView(); else CViewMgr::GetInstance().showFaxView(); SetItemState(pNMItemActivate->iItem, LVIS_SELECTED, LVIF_STATE); *pResult = 0; } }