C:\home\SVGCats_src\src\LeftView.cpp
1|// LeftView.cpp : CLeftView クラスの動作の定義を行います。 2|// 3| 4|#include "mixer_precomp.h" 5| 6|#ifdef USES_MXP_AUTOINC 7| #include "SVGCat.ah" 8|#endif 9| 10|#ifdef _DEBUG 11|#define new DEBUG_NEW 12|#undef THIS_FILE 13|static char THIS_FILE[] = __FILE__; 14|#endif 15| 16|///////////////////////////////////////////////////////////////////////////// 17|// CLeftView 18| 19|IMPLEMENT_DYNCREATE(CLeftView, CTreeView) 20| 21|BEGIN_MESSAGE_MAP(CLeftView, CTreeView) 22| //{{AFX_MSG_MAP(CLeftView) 23| // メモ - ClassWizard はこの位置にマッピング用のマクロを追加または削除します。 24| // この位置に生成されるコードを編集しないでください。 25| //}}AFX_MSG_MAP 26| // 標準印刷コマンド 27| ON_COMMAND(ID_FILE_PRINT, CTreeView::OnFilePrint) 28| ON_COMMAND(ID_FILE_PRINT_DIRECT, CTreeView::OnFilePrint) 29| ON_COMMAND(ID_FILE_PRINT_PREVIEW, CTreeView::OnFilePrintPreview) 30| ON_NOTIFY_REFLECT(TVN_SELCHANGED, OnSelchanged) 31| ON_NOTIFY_REFLECT(TVN_BEGINDRAG, OnBegindlag) 32| ON_WM_LBUTTONDOWN() 33| ON_WM_MOUSEMOVE() 34| ON_WM_LBUTTONUP() 35| ON_WM_LBUTTONDBLCLK() 36|// ON_WM_RBUTTONDOWN() 37|// ON_WM_RBUTTONUP() 38| ON_WM_MOUSEWHEEL() 39| ON_NOTIFY_REFLECT( NM_RCLICK, OnRClick ) 40|END_MESSAGE_MAP() 41| 42|///////////////////////////////////////////////////////////////////////////// 43|// CLeftView クラスの構築/消滅 44| 45|CLeftView::CLeftView() 46|{ 47| // TODO: この場所に構築用のコードを追加してください。 48| m_bDlag = false; 49| m_Editing = false; 50|} 51| 52|CLeftView::~CLeftView() 53|{ 54|} 55| 56|BOOL CLeftView::PreCreateWindow(CREATESTRUCT& cs) 57|{ 58| // TODO: この位置で CREATESTRUCT cs を修正して Window クラスまたはスタイルを 59| // 修正してください。 60| 61| return CTreeView::PreCreateWindow(cs); 62|} 63| 64|///////////////////////////////////////////////////////////////////////////// 65|// CLeftView クラスの描画 66| 67|void CLeftView::OnDraw(CDC* pDC) 68|{ 69|// CTreevDoc* pDoc = GetDocument(); 70|// ASSERT_VALID(pDoc); 71| 72| // TODO: この場所にネイティブ データ用の描画コードを追加します。 73|} 74| 75| 76|///////////////////////////////////////////////////////////////////////////// 77|// CLeftView クラスの印刷 78| 79|BOOL CLeftView::OnPreparePrinting(CPrintInfo* pInfo) 80|{ 81| // デフォルトの印刷準備 82| return DoPreparePrinting(pInfo); 83|} 84| 85|void CLeftView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/) 86|{ 87| // TODO: 印刷前の特別な初期化処理を追加してください。 88|} 89| 90|void CLeftView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/) 91|{ 92| // TODO: 印刷後の後処理を追加してください。 93|} 94| 95|void CLeftView::OnInitialUpdate() 96|{ 97| CTreeView::OnInitialUpdate(); 98| 99| // TODO: GetTreeCtrl() メンバ関数の呼び出しを通して直接そのリスト コントロールに 100| // アクセスすることによって TreeView をアイテムで固定できます。 101|} 102| 103|///////////////////////////////////////////////////////////////////////////// 104|// CLeftView クラスの診断 105| 106|#ifdef _DEBUG 107|void CLeftView::AssertValid() const 108|{ 109| CTreeView::AssertValid(); 110|} 111| 112|void CLeftView::Dump(CDumpContext& dc) const 113|{ 114| CTreeView::Dump(dc); 115|} 116| 117|CTreevDoc* CLeftView::GetDocument() // 非デバッグ バージョンはインラインです。 118|{ 119|// ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CTreevDoc))); 120| return NULL; //(CTreevDoc*)m_pDocument; 121|} 122|#endif //_DEBUG 123| 124|///////////////////////////////////////////////////////////////////////////// 125|// CLeftView クラスのメッセージ ハンドラ 126| 127|void CLeftView::OnSelchanged( NMHDR* pNotifyStruct, LRESULT* result ) 128|{ 129| CMainFrame* frame = (CMainFrame*)GetParent()->GetParent(); 130| 131| frame->OnTreeSelchanged(); *result = 0; 132|} 133| 134|void CLeftView::OnLButtonDown(UINT nFlags, CPoint point) 135|{ 136| CMainFrame* frame = (CMainFrame*)GetParent()->GetParent(); 137| 138| frame->OnTreeLButtonDown(nFlags, point); 139| CTreeView::OnLButtonDown(nFlags, point); 140|} 141| 142| 143|void CLeftView::OnBegindlag( NMHDR* pNotifyStruct, LRESULT* result ) 144|{ 145| CMainFrame* frame = (CMainFrame*)GetParent()->GetParent(); 146| NM_TREEVIEW* tree = (NM_TREEVIEW*)pNotifyStruct; 147| 148| m_bDlag = true; 149| frame->OnTreeBeginDrag( tree->ptDrag ); *result = 0; 150|} 151| 152|void CLeftView::OnMouseMove(UINT nFlags, CPoint point) 153|{ 154| if ( m_bDlag ) { 155| CMainFrame* frame = (CMainFrame*)GetParent()->GetParent(); 156| 157| frame->OnTreeDragMove(nFlags, point); 158| } 159| CTreeView::OnMouseMove(nFlags, point); 160|} 161| 162|void CLeftView::OnLButtonUp(UINT nFlags, CPoint point) 163|{ /* クリックではここに来ないが、ドラッグでは来る(参考:OnRClick) */ 164| CMainFrame* frame = (CMainFrame*)GetParent()->GetParent(); 165| 166| CTreeView::OnLButtonUp(nFlags, point); 167| 168| if ( m_bDlag ) { 169| frame->OnTreeEndDrag(nFlags, point); 170| m_bDlag = false; 171| } 172| frame->OnTreeLButtonUp(nFlags, point); 173|} 174| 175| 176|void CLeftView::OnLButtonDblClk( UINT, CPoint ) 177|{ 178| CMainFrame* frame = (CMainFrame*)GetParent()->GetParent(); 179| 180| frame->EditTitle(); 181|} 182| 183|#if 0 184|void CLeftView::OnRButtonDown(UINT nFlags, CPoint point) 185|{ 186| CMainFrame* frame = (CMainFrame*)GetParent()->GetParent(); 187| 188| CTreeView::OnRButtonDown(nFlags, point); 189|} 190| 191| 192|void CLeftView::OnRButtonUp(UINT nFlags, CPoint point) 193|{ /* クリックではここに来ないが、ドラッグやダブルクリックでは来る */ 194| CMainFrame* frame = (CMainFrame*)GetParent()->GetParent(); 195| 196| CTreeView::OnRButtonUp(nFlags, point); 197|} 198|#endif 199| 200|void CLeftView::OnRClick(NMHDR* pNMHDR, LRESULT* result) 201|{ /* クリックでここに来る */ 202| CMainFrame* frame = (CMainFrame*)GetParent()->GetParent(); 203| 204| frame->OnTreeRClick(); *result = 0; 205|} 206| 207| 208|BOOL CLeftView::OnMouseWheel(UINT nFlags, short zDelta, CPoint pt) 209|{ 210| CMainFrame* frame = (CMainFrame*)GetParent()->GetParent(); 211| RECT rc; 212| 213| GetClientRect( &rc ); ClientToScreen( &rc ); 214| 215| if ( rc.left <= pt.x && pt.x <= rc.right && rc.top <= pt.y && pt.y <= rc.bottom ) 216| return CTreeView::OnMouseWheel(nFlags, zDelta, pt); 217| else 218| { frame->m_wndView->OnMouseWheel(nFlags, zDelta, pt); return TRUE; } 219|} 220| 221| 222|