// This is a part of the Microsoft Foundation Classes C++ library. // Copyright (C) 1992-1998 Microsoft Corporation // All rights reserved. // // This source code is only intended as a supplement to the // Microsoft Foundation Classes Reference and related // electronic documentation provided with the library. // See these sources for detailed information regarding the // Microsoft Foundation Classes product. #include "stdafx.h" #ifdef AFX_CORE4_SEG #pragma code_seg(AFX_CORE4_SEG) #endif #ifdef _DEBUG #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif #define new DEBUG_NEW ///////////////////////////////////////////////////////////////////////////// // CListView BEGIN_MESSAGE_MAP(CListView, CCtrlView) //{{AFX_MSG_MAP(CListView) ON_WM_NCDESTROY() //}}AFX_MSG_MAP END_MESSAGE_MAP() BOOL CListView::PreCreateWindow(CREATESTRUCT& cs) { return CCtrlView::PreCreateWindow(cs); } void CListView::DrawItem(LPDRAWITEMSTRUCT) { ASSERT(FALSE); } BOOL CListView::OnChildNotify(UINT message, WPARAM wParam, LPARAM lParam, LRESULT* pResult) { if (message != WM_DRAWITEM) return CCtrlView::OnChildNotify(message, wParam, lParam, pResult); ASSERT(pResult == NULL); // no return value expected UNUSED(pResult); // unused in release builds DrawItem((LPDRAWITEMSTRUCT)lParam); return TRUE; } void CListView::RemoveImageList(int nImageList) { HIMAGELIST h = (HIMAGELIST)SendMessage(LVM_GETIMAGELIST, (WPARAM)nImageList); if (CImageList::FromHandlePermanent(h) != NULL) SendMessage(LVM_SETIMAGELIST, (WPARAM)nImageList, NULL); } void CListView::OnNcDestroy() { RemoveImageList(LVSIL_NORMAL); RemoveImageList(LVSIL_SMALL); RemoveImageList(LVSIL_STATE); CCtrlView::OnNcDestroy(); } ///////////////////////////////////////////////////////////////////////////// // CTreeView BEGIN_MESSAGE_MAP(CTreeView, CCtrlView) //{{AFX_MSG_MAP(CTreeView) ON_WM_DESTROY() //}}AFX_MSG_MAP END_MESSAGE_MAP() BOOL CTreeView::PreCreateWindow(CREATESTRUCT& cs) { return CCtrlView::PreCreateWindow(cs); } void CTreeView::RemoveImageList(int nImageList) { HIMAGELIST h = (HIMAGELIST)SendMessage(TVM_GETIMAGELIST, (WPARAM)nImageList); if (CImageList::FromHandlePermanent(h) != NULL) SendMessage(TVM_SETIMAGELIST, (WPARAM)nImageList, NULL); } void CTreeView::OnDestroy() { RemoveImageList(LVSIL_NORMAL); RemoveImageList(LVSIL_STATE); CCtrlView::OnDestroy(); } ///////////////////////////////////////////////////////////////////////////// #ifndef _AFX_ENABLE_INLINES static const char _szAfxWinInl[] = "afxcview.inl"; #undef THIS_FILE #define THIS_FILE _szAfxWinInl #define _AFXCVIEW_INLINE #include "afxcview.inl" #endif //_AFX_ENABLE_INLINES #ifdef AFX_INIT_SEG #pragma code_seg(AFX_INIT_SEG) #endif IMPLEMENT_DYNCREATE(CListView, CCtrlView) IMPLEMENT_DYNCREATE(CTreeView, CCtrlView) /////////////////////////////////////////////////////////////////////////////