home *** CD-ROM | disk | FTP | other *** search
/ QBasic & Borland Pascal & C / Delphi5.iso / Basic / Visual Basic.60 / COMMON / TOOLS / VCM / VCM.MDB / VcmComponentContainer / 14_Cabinet / CTRLEXT.CPP < prev    next >
Encoding:
C/C++ Source or Header  |  1998-05-18  |  3.0 KB  |  119 lines

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