CustomItem.h 825 B

123456789101112131415161718192021222324252627282930313233
  1. #pragma once
  2. #include "PropertyGrid.h"
  3. class ICustomItem
  4. {
  5. public:
  6. // basic required stuff
  7. //
  8. virtual CPropertyGrid::EEditMode GetEditMode() = 0;
  9. virtual void DrawItem(CDC& dc, CRect rc, bool focused) = 0;
  10. // validation
  11. virtual void ValidateChanges() {}
  12. // mouse stuff
  13. virtual bool OnLButtonDown(CRect rc, CPoint pt) { return false; }
  14. virtual void OnMouseMove(CRect rc, CPoint pt) {}
  15. virtual void OnLButtonUp(CRect rc, CPoint pt) {}
  16. // in-place edit
  17. virtual string GetStringForInPlaceEdit() { return ""; }
  18. virtual bool OnItemEdited(string strNewValue) { return false; }
  19. // dropdown edit
  20. virtual void ShowDropDown(CRect rc) {}
  21. // modal edit
  22. virtual bool OnEditItem() { return false; }
  23. protected:
  24. friend class CPropertyGrid; //³äµ±CPropertyGridµÄÓÑÔªÀà;
  25. CPropertyGrid* m_pGrid;
  26. };