home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Windows Gam…ming Gurus (2nd Edition) / Disc2.iso / msdn_vcb / samples / vc98 / mfc / database / daoctl / ctrlext.cpp < prev    next >
C/C++ Source or Header  |  1998-03-26  |  3KB  |  108 lines

  1. // ctrlext.cpp :
  2. //
  3. // This is a part of the Microsoft Foundation Classes C++ library.
  4. // Copyright (C) 1992-1998 Microsoft Corporation
  5. // All rights reserved.
  6. //
  7. // This source code is only intended as a supplement to the
  8. // Microsoft Foundation Classes Reference and related
  9. // electronic documentation provided with the library.
  10. // See these sources for detailed information regarding the
  11. // Microsoft Foundation Classes product.
  12.  
  13. #include "stdafx.h"
  14. #include "ctrlext.h"
  15.  
  16. #ifdef _DEBUG
  17. #undef THIS_FILE
  18. static char THIS_FILE[] = __FILE__;
  19. #endif
  20.  
  21. #define new DEBUG_NEW
  22.  
  23. /////////////////////////////////////////////////////////////////////////////
  24. // Inline function declarations
  25.  
  26. #define _AFXCTL_INLINE inline
  27.  
  28.  
  29. /////////////////////////////////////////////////////////////////////////////
  30. // CTreeCtrlNode
  31.  
  32.  
  33. const CTreeCursor& CTreeCursor::operator =(const CTreeCursor& posSrc)
  34. {
  35.     if(&posSrc != this){
  36.         m_hTreeItem = posSrc.m_hTreeItem;
  37.         m_pTree = posSrc.m_pTree;
  38.     }
  39.     return *this;
  40. }
  41.  
  42.  
  43. CTreeCursor CTreeCursor::_Insert(LPCTSTR strItem,int nImageIndex,HTREEITEM hAfter)
  44. {
  45.     TV_INSERTSTRUCT ins;
  46.     ins.hParent = m_hTreeItem;
  47.     ins.hInsertAfter = hAfter;
  48.     ins.item.mask = TVIF_TEXT;
  49.     ins.item.pszText = (LPTSTR) strItem;
  50.     if(nImageIndex != -1){
  51.         ins.item.mask |= TVIF_IMAGE | TVIF_SELECTEDIMAGE;
  52.         ins.item.iImage = nImageIndex;
  53.         ins.item.iSelectedImage = nImageIndex;
  54.     }
  55.     return CTreeCursor(m_pTree->InsertItem(&ins), m_pTree);
  56. }
  57.  
  58. int CTreeCursor::GetImageID()
  59. {
  60.     TV_ITEM item;
  61.     item.mask = TVIF_HANDLE | TVIF_IMAGE;
  62.     item.hItem = m_hTreeItem;
  63.     m_pTree->GetItem(&item);
  64.     return item.iImage;
  65. }
  66.  
  67. /////////////////////////////////////////////////////////////////////////////
  68. // CTreeCtrlEx
  69.  
  70. // All handled by inlines
  71.  
  72. /////////////////////////////////////////////////////////////////////////////
  73. // CListCtrlEx
  74.  
  75. BOOL CListCtrlEx::AddColumn(LPCTSTR strItem,int nItem,int nSubItem,int nMask,int nFmt)
  76. {
  77.     LV_COLUMN lvc;
  78.     lvc.mask = nMask;
  79.     lvc.fmt = nFmt;
  80.     lvc.pszText = (LPTSTR) strItem;
  81.     lvc.cx = GetStringWidth(lvc.pszText) + 15;
  82.     if(nMask & LVCF_SUBITEM){
  83.         if(nSubItem != -1)
  84.             lvc.iSubItem = nSubItem;
  85.         else
  86.             lvc.iSubItem = nItem;
  87.     }
  88.     return InsertColumn(nItem,&lvc);
  89. }
  90.  
  91. BOOL CListCtrlEx::AddItem(int nItem,int nSubItem,LPCTSTR strItem,int nImageIndex)
  92. {
  93.     LV_ITEM lvItem;
  94.     lvItem.mask = LVIF_TEXT;
  95.     lvItem.iItem = nItem;
  96.     lvItem.iSubItem = nSubItem;
  97.     lvItem.pszText = (LPTSTR) strItem;
  98.     if(nImageIndex != -1){
  99.         lvItem.mask |= LVIF_IMAGE;
  100.         lvItem.iImage |= LVIF_IMAGE;
  101.     }
  102.     if(nSubItem == 0)
  103.         return InsertItem(&lvItem);
  104.     return SetItem(&lvItem);
  105. }
  106.  
  107. /////////////////////////////////////////////////////////////////////////////
  108.