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

📄 adjustbutton.cpp

📁 用VC+SQL实现的物流管理系统 “RxMediaPlayer” 文件夹中存放《物流综合管理系统》中《媒体播放平台》源程序 “数据库设置”文件夹中存放《物流综合管理系统》辅助工具《数据库设置》源程
💻 CPP
字号:
// AdjustButton.cpp : implementation file
//

#include "stdafx.h"
#include "MyProject.h"
#include "AdjustButton.h"

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

/////////////////////////////////////////////////////////////////////////////
// AdjustButton

AdjustButton::AdjustButton()
{
	m_Style=0;
}

AdjustButton::~AdjustButton()
{
}


BEGIN_MESSAGE_MAP(AdjustButton, CButton)
	//{{AFX_MSG_MAP(AdjustButton)
	ON_WM_CREATE()
	ON_WM_LBUTTONDOWN()
	ON_WM_LBUTTONUP()
	ON_WM_RBUTTONDOWN()
	ON_WM_RBUTTONUP()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// AdjustButton message handlers

void AdjustButton::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct) 
{
	CDC* pDC=CDC::FromHandle(lpDrawItemStruct->hDC);
	

	CRect rcWnd;
	rcWnd=lpDrawItemStruct->rcItem;
	CPoint TopLeft,TopRight,BottomLeft,BottomRight;

	TopLeft=rcWnd.TopLeft();
	BottomRight=rcWnd.BottomRight();

	BottomLeft.x=TopLeft.x;
	BottomLeft.y=BottomRight.y;

	TopRight.x=BottomRight.x;
	TopRight.y=TopLeft.y;

	CPen pen,penW,*pPen;
	pen.CreatePen(PS_SOLID,4,RGB(142,142,142));
	penW.CreatePen(PS_SOLID,2,RGB(255,255,255));
	pPen=pDC->SelectObject(&pen);
	//绘制文本
	CString sCaption;
	this->GetWindowText(sCaption);
	pDC->SetBkMode(TRANSPARENT);
	CRect rcText;
	rcText=rcWnd;
	rcText.left=rcText.left+10;
	rcText.right=rcText.right-10;

	CBitmap bmp;
	BITMAP bitstr;
	if(m_Style==0)
		bmp.LoadBitmap(IDB_BITHW0);
	else
		bmp.LoadBitmap(IDB_BITHW);

	bmp.GetBitmap(&bitstr);
	CDC memDC;
	memDC.CreateCompatibleDC(pDC);
	memDC.SelectObject(&bmp);

/*	COLORREF color;
	switch(m_Style)
	{
	case 0:
		color=RGB(102,153,204);
		break;
	case 1:
		color=RGB(255,204,153);
		break;
	case 3:
		color=RGB(128,128,255);
		break;
	}
	CBrush brush;
	brush.CreateSolidBrush(color);
*/
	CRect rcBut;
	if(m_Aspect==0)
	{
		rcBut=CRect(TopLeft,BottomRight);
		pDC->StretchBlt(0,0,rcBut.Width(),rcBut.Height(),&memDC,0,0,rcBut.Width(),rcBut.Height(),SRCCOPY);
		
		pDC->SelectObject(&pen);
		pDC->MoveTo(TopRight);
		pDC->LineTo(BottomRight);
		pDC->MoveTo(BottomRight);
		pDC->LineTo(BottomLeft);

		pDC->SelectObject(&penW);
		pDC->MoveTo(TopRight);
		pDC->LineTo(BottomRight);
		pDC->MoveTo(BottomRight);
		pDC->LineTo(BottomLeft);
		pDC->DrawText(sCaption,rcText,DT_RIGHT|DT_SINGLELINE|DT_VCENTER);
	}
	else
	{
		rcBut=CRect(TopLeft,CPoint(BottomRight.x-6,BottomRight.y));
		pDC->StretchBlt(0,0,rcBut.Width(),rcBut.Height(),&memDC,0,0,rcBut.Width(),rcBut.Height(),SRCCOPY);
		pDC->SelectObject(&pen);
		pDC->MoveTo(TopLeft);
		pDC->LineTo(BottomLeft);
		pDC->MoveTo(BottomLeft);
		pDC->LineTo(BottomRight.x-8,BottomRight.y);	
			
		pDC->SelectObject(&penW);
		pDC->MoveTo(TopLeft);
		pDC->LineTo(BottomLeft);
		pDC->MoveTo(BottomLeft);
		pDC->LineTo(BottomRight.x-8,BottomRight.y);	


		pDC->DrawText(sCaption,rcText,DT_LEFT|DT_SINGLELINE|DT_VCENTER);
	}

	pDC->SelectObject(pPen);
	memDC.DeleteDC();
	bmp.DeleteObject();
	pen.DeleteObject();
	penW.DeleteObject();

}

void AdjustButton::SetStyle(int nStyle,int nAspect)
{
	m_Style=nStyle;
	m_Aspect=nAspect;
}

int AdjustButton::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{
	if (CButton::OnCreate(lpCreateStruct) == -1)
		return -1;
	// TODO: Add your specialized creation code here
	
	return 0;
}


void AdjustButton::OnLButtonDown(UINT nFlags, CPoint point) 
{
	// TODO: Add your message handler code here and/or call default
	::SendMessage(this->GetParent()->GetSafeHwnd(),DIY_BUTTONDOWN,NULL,NULL);	
	::SetCursor(::LoadCursor(::AfxGetResourceHandle(),MAKEINTRESOURCE(IDC_CURSOR1)));	
	CButton::OnLButtonDown(nFlags, point);
}

void AdjustButton::OnLButtonUp(UINT nFlags, CPoint point) 
{
	// TODO: Add your message handler code here and/or call default
	::SendMessage(this->GetParent()->GetSafeHwnd(),DIY_BUTTONUP,NULL,NULL);	
	
	CButton::OnLButtonUp(nFlags, point);
}

void AdjustButton::OnRButtonDown(UINT nFlags, CPoint point) 
{
	::SendMessage(this->GetParent()->GetSafeHwnd(),DIY_RBUTTONDOWN,NULL,NULL);	
	
	CButton::OnRButtonDown(nFlags, point);
}

void AdjustButton::OnRButtonUp(UINT nFlags, CPoint point) 
{
	::SendMessage(this->GetParent()->GetSafeHwnd(),DIY_RBUTTONUP,NULL,NULL);	
	
	CButton::OnRButtonUp(nFlags, point);
}

⌨️ 快捷键说明

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