⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fileviewtree.cpp

📁 用bcg库编写的java IDE 源码
💻 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 + -