ctrlext.cpp
上传用户:lds876
上传日期:2013-05-25
资源大小:567k
文件大小:3k
源码类别:

P2P编程

开发平台:

Visual C++

  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. #include "stdafx.h"
  13. #include "ctrlext.h"
  14. #ifdef _DEBUG
  15. #undef THIS_FILE
  16. static char THIS_FILE[] = __FILE__;
  17. #endif
  18. #define new DEBUG_NEW
  19. /////////////////////////////////////////////////////////////////////////////
  20. // Inline function declarations
  21. #define _AFXCTL_INLINE inline
  22. /////////////////////////////////////////////////////////////////////////////
  23. // CTreeCtrlNode
  24. const CTreeCursor& CTreeCursor::operator =(const CTreeCursor& posSrc)
  25. {
  26. if(&posSrc != this){
  27. m_hTreeItem = posSrc.m_hTreeItem;
  28. m_pTree = posSrc.m_pTree;
  29. }
  30. return *this;
  31. }
  32. CTreeCursor CTreeCursor::_Insert(LPCTSTR strItem,int nImageIndex,HTREEITEM hAfter)
  33. {
  34. TV_INSERTSTRUCT ins;
  35. ins.hParent = m_hTreeItem;
  36. ins.hInsertAfter = hAfter;
  37. ins.item.mask = TVIF_TEXT;
  38. ins.item.pszText = (LPTSTR) strItem;
  39. if(nImageIndex != -1){
  40. ins.item.mask |= TVIF_IMAGE | TVIF_SELECTEDIMAGE;
  41. ins.item.iImage = nImageIndex;
  42. ins.item.iSelectedImage = nImageIndex;
  43. }
  44. return CTreeCursor(m_pTree->InsertItem(&ins), m_pTree);
  45. }
  46. int CTreeCursor::GetImageID()
  47. {
  48. TV_ITEM item;
  49. item.mask = TVIF_HANDLE | TVIF_IMAGE;
  50. item.hItem = m_hTreeItem;
  51. m_pTree->GetItem(&item);
  52. return item.iImage;
  53. }
  54. /////////////////////////////////////////////////////////////////////////////
  55. // CTreeCtrlEx
  56. // All handled by inlines
  57. /////////////////////////////////////////////////////////////////////////////
  58. // CListCtrlEx
  59. BOOL CListCtrlEx::AddColumn(LPCTSTR strItem,int nItem,int nSubItem,int nMask,int nFmt)
  60. {
  61. LV_COLUMN lvc;
  62. lvc.mask = nMask;
  63. lvc.fmt = nFmt;
  64. lvc.pszText = (LPTSTR) strItem;
  65. lvc.cx = GetStringWidth(lvc.pszText) + 15;
  66. if(nMask & LVCF_SUBITEM){
  67. if(nSubItem != -1)
  68. lvc.iSubItem = nSubItem;
  69. else
  70. lvc.iSubItem = nItem;
  71. }
  72. return InsertColumn(nItem,&lvc);
  73. }
  74. BOOL CListCtrlEx::AddItem(int nItem,int nSubItem,LPCTSTR strItem,int nImageIndex)
  75. {
  76. LV_ITEM lvItem;
  77. lvItem.mask = LVIF_TEXT;
  78. lvItem.iItem = nItem;
  79. lvItem.iSubItem = nSubItem;
  80. lvItem.pszText = (LPTSTR) strItem;
  81. if(nImageIndex != -1){
  82. lvItem.mask |= LVIF_IMAGE;
  83. lvItem.iImage |= LVIF_IMAGE;
  84. }
  85. if(nSubItem == 0)
  86. return InsertItem(&lvItem);
  87. return SetItem(&lvItem);
  88. }
  89. /////////////////////////////////////////////////////////////////////////////