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

📄 javatreectrl.cpp

📁 用bcg库编写的java IDE 源码
💻 CPP
字号:
// JavaTreeCtrl.cpp : implementation file
//

#include "stdafx.h"
#include "VisualJava.h"
#include "JavaTreeCtrl.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CJavaTreeCtrl
IMPLEMENT_DYNAMIC(CJavaTreeCtrl,CTreeCtrl)

CJavaTreeCtrl::CJavaTreeCtrl()
{
  m_brBackground.CreateSolidBrush(RGB(192,192,255));
}

CJavaTreeCtrl::~CJavaTreeCtrl()
{
  m_brBackground.DeleteObject();
}


BEGIN_MESSAGE_MAP(CJavaTreeCtrl, CTreeCtrl)
	//{{AFX_MSG_MAP(CJavaTreeCtrl)	
	ON_WM_PAINT()
	//}}AFX_MSG_MAP
	//ON_WM_NCCALCSIZE()
	ON_WM_ERASEBKGND()
	//ON_WM_PAINT()
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CJavaTreeCtrl message handlers

void CJavaTreeCtrl::OnNcPaint() 
{
    // get window DC that is clipped to the non-client area
    CWindowDC dc(this);

    CRect rcClient, rcBar;
    GetClientRect(rcClient);
    ClientToScreen(rcClient);

    GetWindowRect(rcBar);
    rcClient.OffsetRect(-rcBar.TopLeft());
    rcBar.OffsetRect(-rcBar.TopLeft());

    CDC mdc;
    mdc.CreateCompatibleDC(&dc);
    
    CBitmap bm;
    bm.CreateCompatibleBitmap(&dc, rcBar.Width(), rcBar.Height());
    CBitmap* pOldBm = mdc.SelectObject(&bm);

    // client area is not our bussiness :)


    dc.ExcludeClipRect(rcClient);

    // draw borders in non-client area
    CRect rcDraw = rcBar;
    mdc.FillRect(rcDraw,&m_brBackground);

	
	//rcDraw.DeflateRect(0,0,0,17);
    //mdc.FillRect(rcDraw,&m_brBackground);


	/*
    CPen nPen(PS_SOLID,1,RGB(0,0,0));
	CPen* pOldPen = mdc.SelectObject(&nPen);
	mdc.MoveTo(0,rcDraw.bottom-18);
	mdc.LineTo(0,rcDraw.bottom);
	mdc.SelectObject(pOldPen);
    */
	
	// erase parts not drawn
    //mdc.IntersectClipRect(rcDraw);

    // erase the NC background
	mdc.FillSolidRect(rcDraw,RGB(0,0,0));



    dc.BitBlt(0, 0, rcBar.Width(), rcBar.Height(), &mdc, 0, 0, SRCCOPY);

    ReleaseDC(&dc);

    mdc.SelectObject(pOldBm);
    bm.DeleteObject();
    mdc.DeleteDC();
}

void CJavaTreeCtrl::OnNcCalcSize(BOOL bCalcValidRects, NCCALCSIZE_PARAMS FAR* lpncsp) 
{	
  CTreeCtrl::OnNcCalcSize(bCalcValidRects, lpncsp);
  /**
  CRect rc(lpncsp->rgrc[0]);
  rc.DeflateRect(1,1,1,1);
  LPRECT rt = &lpncsp->rgrc[0];
  *rt = rc;
  **/
}

BOOL CJavaTreeCtrl::PreCreateWindow(CREATESTRUCT& cs) 
{
  cs.style |= WS_CLIPCHILDREN;  	
  return CTreeCtrl::PreCreateWindow(cs);
}

BOOL CJavaTreeCtrl::OnEraseBkgnd(CDC* pDC) 
{
  return TRUE;
}



void CJavaTreeCtrl::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
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -