switchstatic.cpp

来自「实现射线源控制」· C++ 代码 · 共 65 行

CPP
65
字号
// SwitchStatic.cpp : implementation file
//

#include "stdafx.h"
#include "Xray.h"
#include "SwitchStatic.h"

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

/////////////////////////////////////////////////////////////////////////////
// CSwitchStatic

CSwitchStatic::CSwitchStatic()
{
	bSwitchOn = FALSE;
}

CSwitchStatic::~CSwitchStatic()
{
}


BEGIN_MESSAGE_MAP(CSwitchStatic, CStatic)
	//{{AFX_MSG_MAP(CSwitchStatic)
	ON_WM_PAINT()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CSwitchStatic message handlers

BOOL CSwitchStatic::GetSwitchState()
{
	return this->bSwitchOn ;
}

void CSwitchStatic::SetSwitchState(BOOL bOn)
{
	this->bSwitchOn = bOn;
	this->Invalidate();
}

void CSwitchStatic::OnPaint() 
{
	CPaintDC dc(this); // device context for painting	
	CRect rect;
	GetClientRect(&rect); 
	CDC *mdc=new CDC;
	mdc->CreateCompatibleDC(&dc);
	HBITMAP hbitmap; 
	if(this->bSwitchOn)
			hbitmap=::LoadBitmap(::AfxGetInstanceHandle(),MAKEINTRESOURCE(IDB_SWITCHOFF));
	else
			hbitmap=::LoadBitmap(::AfxGetInstanceHandle(),MAKEINTRESOURCE(IDB_SWITCHON));
	
	mdc->SelectObject(hbitmap); 
	dc.BitBlt(rect.left,rect.top,rect.Width(),rect.Height(),mdc,0,0,SRCCOPY);
	ReleaseDC(mdc);
	::DeleteObject(hbitmap);
}

⌨️ 快捷键说明

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