UITreeView.cpp
上传用户:yatsl7111
上传日期:2007-01-08
资源大小:1433k
文件大小:4k
- //*******************************************************************************
- // COPYRIGHT NOTES
- // ---------------
- // You may use this source code, compile or redistribute it as part of your application
- // for free. You cannot redistribute it as a part of a software development
- // library without the agreement of the author. If the sources are
- // distributed along with the application, you should leave the original
- // copyright notes in the source code without any changes.
- // This code can be used WITHOUT ANY WARRANTIES at your own risk.
- //
- // For the latest updates to this code, check this site:
- // http://www.masmex.com
- // after Sept 2000
- //
- // Copyright(C) 2000 Philip Oldaker <email: philip@masmex.com>
- //*******************************************************************************
- #include "stdafx.h"
- #include "UITreeView.h"
- #include "UIMessages.h"
- #ifdef _DEBUG
- #define new DEBUG_NEW
- #undef THIS_FILE
- static char THIS_FILE[] = __FILE__;
- #endif
- /////////////////////////////////////////////////////////////////////////////
- //
- IMPLEMENT_DYNAMIC(CUITreeView, CView)
- CUITreeView::CUITreeView(UINT nID) : m_nID(nID), m_pTreeCtrl(NULL)
- {
- m_Style = WS_VISIBLE | /*WS_BORDER |*/ WS_CHILD ;
- }
- CUITreeView::~CUITreeView()
- {
- delete m_pTreeCtrl;
- }
- CUITreeCtrl &CUITreeView::GetTreeCtrl()
- {
- ASSERT(m_pTreeCtrl);
- return *m_pTreeCtrl;
- }
- void CUITreeView::CreateTreeCtrl()
- {
- m_pTreeCtrl = new CUITreeCtrl;
- }
- void CUITreeView::SelectionChanged(const CRefresh &Refresh)
- {
- }
- BEGIN_MESSAGE_MAP(CUITreeView, CView)
- //{{AFX_MSG_MAP(CUITreeView)
- ON_WM_CREATE()
- ON_WM_SETFOCUS()
- ON_WM_SIZE()
- //}}AFX_MSG_MAP
- ON_MESSAGE(WM_APP_UPDATE_ALL_VIEWS, OnAppUpdateAllViews)
- END_MESSAGE_MAP()
- /////////////////////////////////////////////////////////////////////////////
- // CUITreeView drawing
- void CUITreeView::OnDraw(CDC* pDC)
- {
- CDocument* pDoc = GetDocument();
- // TODO: add draw code here
- }
- /////////////////////////////////////////////////////////////////////////////
- // CUITreeView diagnostics
- #ifdef _DEBUG
- void CUITreeView::AssertValid() const
- {
- CView::AssertValid();
- }
- void CUITreeView::Dump(CDumpContext& dc) const
- {
- CView::Dump(dc);
- }
- #endif //_DEBUG
- /////////////////////////////////////////////////////////////////////////////
- // CUITreeView message handlers
- int CUITreeView::OnCreate(LPCREATESTRUCT lpCreateStruct)
- {
- if (CView::OnCreate(lpCreateStruct) == -1)
- return -1;
- CreateTreeCtrl();
- if (GetTreeCtrl().Create(m_Style,CRect(0,0,0,0),this,m_nID) == -1)
- return -1;
- return 0;
- }
- BOOL CUITreeView::PreCreateWindow(CREATESTRUCT& cs)
- {
- // TODO: Add your specialized code here and/or call the base class
- cs.lpszClass = AfxRegisterWndClass(
- CS_DBLCLKS,
- NULL,
- NULL,
- NULL);
- ASSERT(cs.lpszClass);
- BOOL ret = CView::PreCreateWindow(cs);
- cs.dwExStyle |= WS_EX_CLIENTEDGE;
- return ret;
- }
- void CUITreeView::OnSetFocus(CWnd* pOldWnd)
- {
- CView::OnSetFocus(pOldWnd);
-
- // TODO: Add your message handler code here
- GetTreeCtrl().SetFocus();
- }
- void CUITreeView::OnSize(UINT nType, int cx, int cy)
- {
- CView::OnSize(nType, cx, cy);
- // TODO: Add your message handler code here
- if (GetTreeCtrl().GetSafeHwnd())
- GetTreeCtrl().MoveWindow(0,0,cx,cy);
- }
- LRESULT CUITreeView::OnAppUpdateAllViews( WPARAM wParam, LPARAM lParam )
- {
- ASSERT(wParam);
- // 加入判断文档是否与此视类连接的语句 阳光灿烂 2000-11-16
- CDocument * pDoc = GetDocument();
- if ( pDoc )
- if ( pDoc->IsKindOf( RUNTIME_CLASS( CDocument ) ) )
- pDoc->UpdateAllViews(NULL,wParam,(CObject*)lParam);
- return 1L;
- }
- void CUITreeView::OnUpdate(CView* pSender, LPARAM lHint, CObject* pHint)
- {
- // TODO: Add your specialized code here and/or call the base class
- if (lHint == HINT_TREE_SEL_CHANGED)
- {
- ASSERT(pHint);
- ASSERT_KINDOF(CRefresh,pHint);
- CRefresh *pRefresh = (CRefresh*)pHint;
- SelectionChanged(*pRefresh);
- }
- }