CheckedTreeCtrl.cpp
上传用户:steady_lmx
上传日期:2007-01-02
资源大小:24k
文件大小:2k
源码类别:

TreeView控件

开发平台:

Visual C++

  1. // CheckedTreeCtrl.cpp: Implementierungsdatei
  2. //
  3. #include "stdafx.h"
  4. #include "CheckedTree.h"
  5. #include "CheckedTreeCtrl.h"
  6. #ifdef _DEBUG
  7. #define new DEBUG_NEW
  8. #undef THIS_FILE
  9. static char THIS_FILE[] = __FILE__;
  10. #endif
  11. /////////////////////////////////////////////////////////////////////////////
  12. // CCheckedTreeCtrl
  13. CCheckedTreeCtrl::CCheckedTreeCtrl()
  14. {
  15. }
  16. CCheckedTreeCtrl::~CCheckedTreeCtrl()
  17. {
  18. }
  19. BEGIN_MESSAGE_MAP(CCheckedTreeCtrl, CTreeCtrl)
  20. //{{AFX_MSG_MAP(CCheckedTreeCtrl)
  21. // HINWEIS - Der Klassen-Assistent f黦t hier Zuordnungsmakros ein und entfernt diese.
  22. //}}AFX_MSG_MAP
  23. END_MESSAGE_MAP()
  24. /////////////////////////////////////////////////////////////////////////////
  25. // Behandlungsroutinen f黵 Nachrichten CCheckedTreeCtrl 
  26. void
  27. CCheckedTreeCtrl::SetBitmaps(
  28. UINT NormalId,
  29. UINT StatusId)
  30. {
  31. // create Imagelists
  32. // 16x16 Pixel, white colour is transparent
  33. m_NormalImageList.Create(
  34. IDB_BITMAP_NORMAL, 16, 2, RGB (255,255,255));
  35. m_StatusImageList.Create(
  36. IDB_BITMAP_STATUS, 16, 2, RGB (255,255,255));
  37. // and set the imagelists
  38. SetImageList(&m_NormalImageList, TVSIL_NORMAL );
  39. SetImageList(&m_StatusImageList, TVSIL_STATE );
  40. }
  41. void CCheckedTreeCtrl::changeItemState()
  42. {
  43. UINT OldState;
  44. HTREEITEM AItem;
  45. AItem = GetSelectedItem();
  46. if (AItem!=NULL)
  47. {
  48. // ... calculate the new state, use a bitmask
  49. OldState = GetItemState(AItem, TVIS_STATEIMAGEMASK);
  50. if ((OldState >> 12) & 1)
  51. SetItemState(AItem,INDEXTOSTATEIMAGEMASK (2), TVIS_STATEIMAGEMASK);
  52. else
  53. SetItemState(AItem,INDEXTOSTATEIMAGEMASK (1), TVIS_STATEIMAGEMASK);
  54. }
  55. }