TreeItem.cpp 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. #include "StdAfx.h"
  2. #include ".\treeitem.h"
  3. CTreeItem::CTreeItem(void)
  4. {
  5. }
  6. CTreeItem::~CTreeItem(void)
  7. {
  8. }
  9. void CTreeItem::SetValue(string value)
  10. {
  11. m_value = value;
  12. m_pGrid->Invalidate();
  13. }
  14. CPropertyGrid::EEditMode CTreeItem::GetEditMode()
  15. {
  16. return CPropertyGrid::EM_DROPDOWN;
  17. }
  18. void CTreeItem::DrawItem(CDC& dc, CRect rc, bool focused)
  19. {
  20. rc.left += m_pGrid->GetTextMargin();
  21. dc.DrawText(m_value.c_str(), rc, DT_SINGLELINE|DT_LEFT|DT_VCENTER|DT_END_ELLIPSIS|DT_NOPREFIX);
  22. }
  23. void CTreeItem::ShowDropDown(CRect rc)
  24. {
  25. rc.top += rc.Height();
  26. rc.bottom = rc.top + 100;
  27. m_pGrid->ClientToScreen(&rc);
  28. m_tree = new CCustomTreeCtrl;
  29. m_tree->m_item = this;
  30. m_tree->CWnd::CreateEx(0, WC_TREEVIEW, NULL, WS_POPUP|WS_BORDER|TVS_HASBUTTONS|TVS_HASLINES|TVS_LINESATROOT, rc, m_pGrid->GetParent(), 0);
  31. m_tree->SetOwner(m_pGrid->GetParent());
  32. HTREEITEM hf = m_tree->InsertItem("Folder 1");
  33. m_tree->InsertItem("Item 1", hf);
  34. m_tree->InsertItem("Item 2", hf);
  35. m_tree->Expand(hf, TVE_EXPAND);
  36. hf = m_tree->InsertItem("Folder 2");
  37. m_tree->InsertItem("Item 3", hf);
  38. m_tree->Expand(hf, TVE_EXPAND);
  39. m_tree->ShowWindow(SW_SHOW);
  40. m_tree->RedrawWindow();
  41. }