📄 fileviewtree.cpp
字号:
// FileViewTree.cpp : implementation file
//
#include "stdafx.h"
#include "VisualJava.h"
#include "FileViewTree.h"
#include "WorkSpace.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CFileViewTree
IMPLEMENT_DYNAMIC(CFileViewTree, CJavaTreeCtrl)
CFileViewTree::CFileViewTree()
{
}
CFileViewTree::~CFileViewTree()
{
}
BEGIN_MESSAGE_MAP(CFileViewTree, CJavaTreeCtrl)
//{{AFX_MSG_MAP(CFileViewTree)
ON_WM_PAINT()
ON_WM_ERASEBKGND()
//}}AFX_MSG_MAP
ON_NOTIFY_REFLECT(TVN_ITEMEXPANDING, OnItemexpanding)
ON_WM_RBUTTONDOWN()
ON_NOTIFY_REFLECT(TVN_SELCHANGING, OnSelchanging)
ON_NOTIFY_REFLECT(TVN_SELCHANGED, OnSelchanged)
ON_WM_CREATE()
ON_NOTIFY_REFLECT(NM_DBLCLK, OnDblclk)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CFileViewTree message handlers
void CFileViewTree::OnItemexpanding(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
CWorkSpcItem *pItem = (CWorkSpcItem*)GetItemData(pNMTreeView->itemNew.hItem);
if(pNMTreeView->action &TVE_EXPAND)
{
if(pItem->m_nItemType == W_FILE_FOLDER)
{
pItem->m_nStatus |= expand;
CString szpText = GetItemText(pNMTreeView->itemNew.hItem);
if(szpText.Compare("Java Source Files") == 0)
{
SetItemImage(pNMTreeView->itemNew.hItem,6,6);
}
else
{
SetItemImage(pNMTreeView->itemNew.hItem,4,4);
}
}
}
else
if(pNMTreeView->action &TVE_COLLAPSE)
{
pItem->m_nStatus &= ~expand;
if(pItem->m_nItemType == W_FILE_FOLDER)
{
CString szpText = GetItemText(pNMTreeView->itemNew.hItem);
if(szpText.Compare("Java Source Files") == 0)
{
SetItemImage(pNMTreeView->itemNew.hItem,7,7);
}
else
{
SetItemImage(pNMTreeView->itemNew.hItem,5,5);
}
}
}
*pResult = 0;
}
void CFileViewTree::OnRButtonDown(UINT nFlags, CPoint point)
{
CJavaTreeCtrl::OnRButtonDown(nFlags, point);
HTREEITEM hItem = GetSelectedItem();
CWorkSpcItem *pItem = (CWorkSpcItem*)GetItemData(hItem);
CPoint pt(point);
ClientToScreen(&pt);
if(hItem != NULL)
{
if(pItem->m_nItemType == W_WORKSPACE)
{
theApp.ShowPopupMenu(IDR_WORKSPC_MENU,pt,this);
}
else
if(pItem->m_nItemType == W_PROJECT)
{
theApp.ShowPopupMenu(IDR_PROJECT_MENU,pt,this);
}
else
if(pItem->m_nItemType == W_FILE_FOLDER)
{
/*
CMenu popUp;
//** load menu ID
popUp.LoadMenu(IDR_FOLDER_MENU);
popUp.GetSubMenu(0)->TrackPopupMenu(TPM_LEFTALIGN,pt.x,pt.y,this);
*/
theApp.ShowPopupMenu(IDR_FOLDER_MENU,pt,this);
}
else
if(pItem->m_nItemType == W_FILE)
{
/*
CMenu popUp;
//** load menu ID
popUp.LoadMenu(IDR_FILE_MENU);
popUp.GetSubMenu(0)->TrackPopupMenu(TPM_LEFTALIGN,pt.x,pt.y,this);
*/
theApp.ShowPopupMenu(IDR_FILE_MENU,pt,this);
}
}
}
/*void CCustomTreeCtrl::OnDblclk(NMHDR* pNMHDR, LRESULT* pResult)
{
HTREEITEM hItem = GetSelectedItem();
CWorkSpcItem *pItem = (CWorkSpcItem*)GetItemData(hItem);
if(hItem != NULL)
{
if(pItem->m_nItemType == W_WORKSPACE)
{
}
else
if(pItem->m_nItemType == W_PROJECT)
{
}
else
if(pItem->m_nItemType == W_FILE_FOLDER)
{
}
else
if(pItem->m_nItemType == W_FILE)
{
}
}
*pResult = 0;
}
*/
void CFileViewTree::OnSelchanging(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
HTREEITEM hItem = GetSelectedItem();
if(hItem != NULL)
{
CWorkSpcItem *pItem = (CWorkSpcItem*)GetItemData(hItem);
pItem->m_nStatus &= ~select;
}
*pResult = 0;
}
void CFileViewTree::OnSelchanged(NMHDR* pNMHDR, LRESULT* pResult)
{
NM_TREEVIEW* pNMTreeView = (NM_TREEVIEW*)pNMHDR;
HTREEITEM hItem = GetSelectedItem();
if(hItem != NULL)
{
CWorkSpcItem *pItem = (CWorkSpcItem*)GetItemData(hItem);
pItem->m_nStatus |= select;
}
*pResult = 0;
}
int CFileViewTree::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CJavaTreeCtrl::OnCreate(lpCreateStruct) == -1)
return -1;
SetIndent(16);
return 0;
}
void CFileViewTree::OnDblclk(NMHDR* pNMHDR, LRESULT* pResult)
{
HTREEITEM hItem = GetSelectedItem();
if(hItem != NULL)
{
CWorkSpcItem *pItem = (CWorkSpcItem*)GetItemData(hItem);
if(pItem->m_nItemType == W_FILE)
{
CProjectFile* pFile = (CProjectFile*)pItem->m_pItem;
CString szpFile = GetItemText(hItem);
CString strFolder = GetItemText(GetParentItem(hItem));
theApp.m_pCurWorkSpace->OpenFile(GetItemText(GetParentItem(GetParentItem(hItem))),strFolder,pFile->m_szpName);
}
}*pResult = 0;
}
void CFileViewTree::OnPaint()
{
CPaintDC dc(this); // device context for painting
CTreeCtrl::DefWindowProc(WM_PAINT,(WPARAM)dc.m_hDC,0);
// Do not call CTreeCtrl::OnPaint() for painting messages
}
BOOL CFileViewTree::OnEraseBkgnd(CDC* pDC)
{
return TRUE;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -