// MyListCtrl.cpp : implementation file // #include "stdafx.h" #include "dicommwl.h" #include "MyListCtrl.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif #define SUB_TAG_ID (0) #define SUB_TAG_DESC (1) #define SUB_TAG_VALUE (2) typedef struct tagLISTVIEWFIELDS { int nCol; char *pszColumnHeading; int nFormat; int nWidth; int nSubItem; } LISTVIEWFIELDS, *LPLISTVIEWFIELDS; LISTVIEWFIELDS ListEmptyFields[] = { SUB_TAG_ID , _T("Tag"), LVCFMT_LEFT, 90, -1, SUB_TAG_DESC , _T("Description"), LVCFMT_LEFT, 170, -1, SUB_TAG_VALUE , _T("Value"), LVCFMT_LEFT, 200, -1, }; ///////////////////////////////////////////////////////////////////////////// // CMyListCtrl CMyListCtrl::CMyListCtrl() { m_nColumnCount = sizeof(ListEmptyFields) / sizeof(ListEmptyFields[0]); } CMyListCtrl::~CMyListCtrl() { } BEGIN_MESSAGE_MAP(CMyListCtrl, CListCtrl) //{{AFX_MSG_MAP(CMyListCtrl) // NOTE - the ClassWizard will add and remove mapping macros here. //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CMyListCtrl message handlers void CMyListCtrl::InitializeList() { int i; SetExtendedStyle(LVS_EX_FULLROWSELECT ); for (i=0; iGetFirstEmptyElementType1(CGlobals::m_uClass, strTag, strDesc); while (pElement) { nIndex = InsertItem(GetItemCount(), strTag); SetItem(nIndex, 1, LVIF_TEXT|LVIF_STATE, strDesc, 0, LVIS_SELECTED, 0, 0); SetItem(nIndex, 2, LVIF_TEXT|LVIF_STATE, "", 0, LVIS_SELECTED, 0, 0); pElement = pDS->GetNextEmptyElementType1(pElement, CGlobals::m_uClass, strTag, strDesc); } } int CMyListCtrl::AppendItem(char *lpzTag, char *lpzDesc, char *lpzValue, HTREEITEM hItem) { int nIndex; nIndex = InsertItem(GetItemCount(), lpzTag, CGlobals::m_nIconMissing); SetItem(nIndex, 1, LVIF_TEXT|LVIF_STATE|LVIF_IMAGE, lpzDesc, CGlobals::m_nIconMissing, LVIS_SELECTED, 0, 0); SetItem(nIndex, 2, LVIF_TEXT|LVIF_STATE|LVIF_IMAGE, lpzValue, CGlobals::m_nIconMissing, LVIS_SELECTED, 0, 0); SetItemData(nIndex, (DWORD)hItem); return nIndex; } int CMyListCtrl::GetFirstSelected() { int nSelected = -1; int i; for (i=0; i