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

📄 resourceview.cpp

📁 BCGCBDotNetExample 修改后的通用模板
💻 CPP
字号:
// ResourceView.cpp: implementation of the CResourceViewBar class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "BCGCBDotNetExample.h"
#include "MainFrm.h"
#include "ResourceView.h"

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

/////////////////////////////////////////////////////////////////////////////
// CResourceViewBar

CResourceViewBar::CResourceViewBar()
{
}

CResourceViewBar::~CResourceViewBar()
{
}


BEGIN_MESSAGE_MAP(CResourceViewBar, CBCGPDockingControlBar)
	//{{AFX_MSG_MAP(CResourceViewBar)
	ON_WM_CREATE()
	ON_WM_SIZE()
	ON_WM_CONTEXTMENU()

	ON_COMMAND(ID_add_address, On_add_address)

	ON_WM_PAINT()
	ON_WM_DESTROY()
	ON_NOTIFY(TVN_SELCHANGED, 0x1005, OnClickTree1)

	
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()


/////////////////////////////////////////////////////////////////////////////
// CResourceViewBar message handlers

int CResourceViewBar::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{
	if (CBCGPDockingControlBar::OnCreate(lpCreateStruct) == -1)
		return -1;
	
	CRect rectDummy;
	rectDummy.SetRectEmpty ();

	// Create view:
	const DWORD dwViewStyle =	WS_CHILD | WS_VISIBLE | WS_CLIPSIBLINGS | TVS_HASLINES | 
								TVS_LINESATROOT | TVS_HASBUTTONS;
	
	if (!m_wndResourceView.Create (dwViewStyle, rectDummy, this, 3))
	{
		TRACE0("Failed to create workspace view\n");
		return -1;      // fail to create
	}

	// Load view images:
	m_ResourceViewImages.Create (IDB_RESOURCE_VIEW, 16, 0, RGB (255, 0, 255));
	m_wndResourceView.SetImageList (&m_ResourceViewImages, TVSIL_NORMAL);

	// Fill view context (dummy code, don't seek here something magic :-)):
	FillResourceView ();

	return 0;
}

void CResourceViewBar::OnSize(UINT nType, int cx, int cy) 
{
	CBCGPDockingControlBar::OnSize(nType, cx, cy);

	if (CanAdjustLayout ())
	{
		m_wndResourceView.SetWindowPos (NULL, 1, 1, cx - 2, cy - 2,
			SWP_NOACTIVATE | SWP_NOZORDER);
	}
}

void CResourceViewBar::FillResourceView ()
{	
	    m_wndResourceView.Create(WS_VISIBLE | WS_TABSTOP | WS_CHILD | WS_BORDER
		| TVS_HASBUTTONS | TVS_LINESATROOT | TVS_HASLINES
		| TVS_DISABLEDRAGDROP,
		CRect(10, 10, 300, 100), this, 0x1005);

	HTREEITEM hRoot = m_wndResourceView.InsertItem (_T("设备"));
	m_wndResourceView.SetItemState (hRoot, TVIS_BOLD, TVIS_BOLD);

		HTREEITEM hFolder = m_wndResourceView.InsertItem (_T("1"), hRoot);
			m_wndResourceView.InsertItem (_T("11"), hFolder);
			m_wndResourceView.InsertItem (_T("12"), hFolder);


		hFolder = m_wndResourceView.InsertItem (_T("2"), hRoot);
			m_wndResourceView.InsertItem (_T("21"), hFolder);

		hFolder = m_wndResourceView.InsertItem (_T("22"), hRoot);


		hFolder = m_wndResourceView.InsertItem (_T("3"), hRoot);
			m_wndResourceView.InsertItem (_T("31"), hFolder);

		hFolder = m_wndResourceView.InsertItem (_T("32"), hFolder);
			m_wndResourceView.InsertItem (_T("321"), hFolder);
			hFolder = m_wndResourceView.InsertItem (_T("322"),  hFolder);
				m_wndResourceView.InsertItem (_T("323"),hFolder);
				m_wndResourceView.Expand (hFolder, TVE_EXPAND);//展开里面以hFolder为根的TREE

	
	m_wndResourceView.Expand (hRoot, TVE_EXPAND);//展开里面以hhRoot为根的TREE

}

void CResourceViewBar::OnContextMenu(CWnd* pWnd, CPoint point) 
{
	CMenu menu;
	menu.LoadMenu(IDR_MENU1);
	
	CMenu* pSumMenu = menu.GetSubMenu(0);
	
	if (AfxGetMainWnd()->IsKindOf(RUNTIME_CLASS(CBCGPMDIFrameWnd)))
	{
		CBCGPPopupMenu* pPopupMenu = new CBCGPPopupMenu;
		
		if (!pPopupMenu->Create(this, point.x, point.y, (HMENU)pSumMenu->m_hMenu, FALSE, TRUE))
			return;
		
		((CBCGPMDIFrameWnd*)AfxGetMainWnd())->OnShowPopupMenu (pPopupMenu);
		UpdateDialogControls(this, FALSE);
	}
	
	SetFocus ();

}

void CResourceViewBar::On_add_address() 
{
	// TODO: Add your command handler code here
	AfxMessageBox("d");
	ASSERT_VALID (((CBCGCBDotNetExampleApp*)AfxGetApp())->dtest);


	POSITION pos = ((CBCGCBDotNetExampleApp*)AfxGetApp())->dtest->GetFirstDocPosition ();
	if (pos == NULL)
	{
		((CBCGCBDotNetExampleApp*)AfxGetApp())->dtest->OpenDocumentFile(NULL);
		return;
	}
}



void CResourceViewBar::OnPaint() 
{
	CPaintDC dc(this); // device context for painting
	
	CRect rectTree;
	m_wndResourceView.GetWindowRect (rectTree);
	ScreenToClient (rectTree);

	rectTree.InflateRect (1, 1);
	dc.Draw3dRect (rectTree, ::GetSysColor (COLOR_3DSHADOW), ::GetSysColor (COLOR_3DSHADOW));
}

void CResourceViewBar::OnDestroy() 
{
	CBCGPDockingControlBar::OnDestroy();
}



void CResourceViewBar::OnClickTree1(NMHDR* pNMHDR, LRESULT* pResult) 
{
	// TODO: Add your control notification handler code here

	 if (m_wndResourceView.GetParentItem(m_wndResourceView.GetParentItem(m_wndResourceView.GetParentItem(m_wndResourceView.GetParentItem(m_wndResourceView.GetSelectedItem()))))  ) {
		CString str;
		str = CString(m_wndResourceView.GetItemText(m_wndResourceView.GetParentItem(m_wndResourceView.GetParentItem(m_wndResourceView.GetParentItem(m_wndResourceView.GetParentItem(m_wndResourceView.GetSelectedItem()))))));
		str += "->";
		str += CString(m_wndResourceView.GetItemText(m_wndResourceView.GetParentItem(m_wndResourceView.GetParentItem(m_wndResourceView.GetParentItem(m_wndResourceView.GetSelectedItem())))));
		str += "->";
		str += CString(m_wndResourceView.GetItemText(m_wndResourceView.GetParentItem(m_wndResourceView.GetParentItem(m_wndResourceView.GetSelectedItem()))));
		str += "->";		
		str += CString(m_wndResourceView.GetItemText(m_wndResourceView.GetParentItem(m_wndResourceView.GetSelectedItem())));
		str += "->";		
		str += CString(m_wndResourceView.GetItemText(m_wndResourceView.GetSelectedItem()));
		
		AfxMessageBox(str);
	}
	 else if (m_wndResourceView.GetParentItem(m_wndResourceView.GetParentItem(m_wndResourceView.GetParentItem(m_wndResourceView.GetSelectedItem())))) {
		 CString str;
		 str += CString(m_wndResourceView.GetItemText(m_wndResourceView.GetParentItem(m_wndResourceView.GetParentItem(m_wndResourceView.GetParentItem(m_wndResourceView.GetSelectedItem())))));
		 str += "->";
		 str += CString(m_wndResourceView.GetItemText(m_wndResourceView.GetParentItem(m_wndResourceView.GetParentItem(m_wndResourceView.GetSelectedItem()))));
		 str += "->";		
		 str += CString(m_wndResourceView.GetItemText(m_wndResourceView.GetParentItem(m_wndResourceView.GetSelectedItem())));
		 str += "->";		
		 str += CString(m_wndResourceView.GetItemText(m_wndResourceView.GetSelectedItem()));
		 
		 AfxMessageBox(str);
	 }


	*pResult = 0;
}


















⌨️ 快捷键说明

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