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

📄 mfcheaderbarcontrolview.cpp

📁 实现类似wince系统自带顶部工具条
💻 CPP
字号:
#include "stdafx.h"
#include "MFCHeaderBarControlView.h"
#include "MFCHeaderBarControlDoc.h"
#include "resource.h"
#include "FolderTree.h"

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

/////////////////////////////////////////////////////////////////////////////
// CMFCHeaderBarControlView

IMPLEMENT_DYNCREATE(CMFCHeaderBarControlView, CView)

BEGIN_MESSAGE_MAP(CMFCHeaderBarControlView, CView)
	//{{AFX_MSG_MAP(CMFCHeaderBarControlView)
	ON_COMMAND(ID_HEADERBAR_LEFT, OnHeaderBarLeft)
	ON_UPDATE_COMMAND_UI(ID_HEADERBAR_LEFT, OnUpdateHeaderBarLeft)
	ON_COMMAND(ID_HEADERBAR_RIGHT, OnHeaderBarRight)
	ON_UPDATE_COMMAND_UI(ID_HEADERBAR_RIGHT, OnUpdateHeaderBarRight)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CMFCHeaderBarControlView construction/destruction

CMFCHeaderBarControlView::CMFCHeaderBarControlView()
{
	// TODO: add construction code here

}

CMFCHeaderBarControlView::~CMFCHeaderBarControlView()
{
}

/////////////////////////////////////////////////////////////////////////////
// CMFCHeaderBarControlView drawing

void CMFCHeaderBarControlView::OnDraw(CDC* pDC)
{
	// TODO: add draw code for native data here
	CView::OnDraw(pDC);

//	CRect rc;
//	GetClientRect(rc);
	
//	CBrush brush(RGB(255,0,0));
//	pDC->FillRect(&rc, &brush);

}

/////////////////////////////////////////////////////////////////////////////
// CMFCHeaderBarControlView diagnostics

#ifdef _DEBUG
void CMFCHeaderBarControlView::AssertValid() const
{
	CView::AssertValid();
}

void CMFCHeaderBarControlView::Dump(CDumpContext& dc) const
{
	CView::Dump(dc);
}

#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CMFCHeaderBarControlView message handlers

void CMFCHeaderBarControlView::OnHeaderBarLeft() 
{
	if (m_pwndTree->IsWindowVisible())
		m_pwndTree->ShowWindow(SW_HIDE);
	else
	{
		m_pwndTree->ShowWindow(SW_SHOW);
		m_pwndTree->BringWindowToTop();
	}
}

void CMFCHeaderBarControlView::OnUpdateHeaderBarLeft(CCmdUI* pCmdUI) 
{
	pCmdUI->Enable();	
}

void CMFCHeaderBarControlView::OnHeaderBarRight() 
{
//	AfxMessageBox(_T("HeaderbarRight has been called"), MB_OK | MB_ICONINFORMATION);	
	CMenu menu;
	VERIFY(menu.LoadMenu(IDR_SORTBY));
	
	CMenu* pRealMenu = menu.GetSubMenu(0);
	ASSERT(pRealMenu != NULL);

	CWnd* pWnd = GetParent()->GetDlgItem(102);

	CRect rc;
	pWnd->GetWindowRect(&rc);

	// When the user selects an item off the menu, it is routed to this view,
	// however do not actually do anything with this view.
	pRealMenu->TrackPopupMenu(TPM_RIGHTALIGN, rc.right, rc.bottom-1, this, NULL);
}

void CMFCHeaderBarControlView::OnUpdateHeaderBarRight(CCmdUI* pCmdUI) 
{
	pCmdUI->Enable();	
}

void CMFCHeaderBarControlView::OnInitialUpdate()
{
	CRect rc;
	GetClientRect(rc);
	rc.right = rc.Width() / 2;
	rc.bottom = rc.Height() / 2;

	m_pwndTree = new CFolderTree;
	VERIFY(m_pwndTree->Create(WS_CHILD | TVS_HASBUTTONS | TVS_HASLINES, rc, this, 103));

	m_pwndTree->ShowWindow(SW_HIDE);
}

⌨️ 快捷键说明

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