PropertyGridItemFlagBits.h 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. #pragma once
  2. /////////////////////////////////////////////////////////////////////////////
  3. // CPropertyGridInplaceCheckList 内置复选列表框
  4. /////////////////////////////////////////////////////////////////////////////
  5. class CPropertyGridInplaceCheckList : public CCheckListBox
  6. {
  7. public:
  8. CPropertyGridInplaceCheckList();
  9. virtual ~CPropertyGridInplaceCheckList();
  10. // 创建窗口
  11. void Create(CPropertyGridItem* pItem, CRect rect, BOOL checkStates[]);
  12. // 删除窗口
  13. void DestroyItem();
  14. protected:
  15. // 更新属性项
  16. void Apply();
  17. // 内置复选列表框的拥有者
  18. CPropertyGridItem* m_pItem;
  19. // 标识用户是否取消了操作
  20. BOOL m_bCanceled;
  21. protected:
  22. //{{AFX_VIRTUAL(CPropertyGridInplaceCheckList)
  23. //}}AFX_VIRTUAL
  24. //{{AFX_MSG(CPropertyGridInplaceCheckList)
  25. afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);
  26. afx_msg void OnKillFocus(CWnd* pNewWnd);
  27. afx_msg int OnMouseActivate(CWnd* pDesktopWnd, UINT nHitTest, UINT message);
  28. //}}AFX_MSG
  29. DECLARE_MESSAGE_MAP()
  30. };
  31. /////////////////////////////////////////////////////////////////////////////
  32. // CPropertyGridItemFlagBits 标志位属性表项
  33. /////////////////////////////////////////////////////////////////////////////
  34. class CPropertyGridItemFlagBits : public CPropertyGridItem
  35. {
  36. public:
  37. // 构造函数
  38. // strCaption -属性名称
  39. CPropertyGridItemFlagBits(CString strCaption);
  40. // 构造函数
  41. // nID -属性名称的资源ID
  42. CPropertyGridItemFlagBits(UINT nID);
  43. virtual ~CPropertyGridItemFlagBits();
  44. // 增加标志位数据项
  45. // nItemValue -标志位数据项的值
  46. // nItemText -标志位数据项的文本
  47. void AddFlagItem(int nItemValue, CString nItemText);
  48. // 设置属性值
  49. void SetFlagBits(DWORD value);
  50. // 获取属性值
  51. DWORD GetFlagBits();
  52. // 把一个整型变量绑定到属性项
  53. void BindToFlagBits(DWORD* pBindFlagBits);
  54. protected:
  55. // 初始化函数
  56. void _Init();
  57. // 辅助函数,按指定的分隔符,把字符串拆分为字符串列表
  58. void SplitString(CString str, TCHAR separator, CStringList& splittedStrings);
  59. protected:
  60. CArray<DWORD, DWORD> m_lstFlagItemValues; // 标志位值的列表
  61. DWORD m_dwValue; // 属性值
  62. DWORD* m_pBindFlagBits; // 绑定到属性项的变量
  63. // 当属性值由于用户输入而改变时,调用此虚函数
  64. virtual void SetValue(CString strValue);
  65. // 当用户点击按钮时,调用此虚函数
  66. virtual void OnInplaceButtonDown();
  67. // 当用户双击属性项时,调用此虚函数
  68. virtual void OnLButtonDblClk();
  69. CPropertyGridInplaceCheckList m_wndCheckList; // 内置复选列表框
  70. };