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

📄 mystatic.cpp

📁 与EVOC板卡PCI-16P16R通讯
💻 CPP
字号:
// MyStatic.cpp : implementation file
//

#include "stdafx.h"

#include "MyStatic.h"

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

/////////////////////////////////////////////////////////////////////////////
// CMyStatic

CMyStatic::CMyStatic()
{
	flagval=0;
	bitcount=8;
	enlbd=false;
	highbr=new CBrush(RGB(255,0,0));
	lowbr=new CBrush(RGB(255,255,255));
	lampsize=20;
	space=8;
}

CMyStatic::~CMyStatic()
{
	delete highbr;
	delete lowbr;
}
BEGIN_MESSAGE_MAP(CMyStatic, CStatic)
	//{{AFX_MSG_MAP(CMyStatic)
	ON_WM_PAINT()
	ON_WM_LBUTTONDOWN()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CMyStatic message handlers
void CMyStatic::SetFlagVal(long wflag)
{
	flagval=wflag;
	Invalidate();
}
long CMyStatic::GetFlagVal()
{
	return flagval;
}
void CMyStatic::SetLampSize(int size,int sp)
{
	lampsize=size;
	space=sp;
	Invalidate();
}
void CMyStatic::SetBitCount(int cn)
{
	if(cn>32)
	{
		MessageBox("Max. Only 32 Bit");
		return;
	}
	bitcount=cn;
	Invalidate();
}
void CMyStatic::SetLampColor(CBrush hibrush,CBrush lowbrush)
{
	highbr=&hibrush;
	lowbr=&lowbrush;
	Invalidate();
}

void CMyStatic::OnPaint() 
{
	CPaintDC dc(this); // device context for painting
	
	// TODO: Add your message handler code here
	
	// Do not call CStatic::OnPaint() for painting messages
	int i;
	CRect wrt;
	GetWindowRect(wrt);
	starpos=(wrt.Height()-lampsize)/2;
	CRect rect(0,starpos,lampsize,lampsize+starpos);
	for(i=0;i<bitcount;i++)
	{
		DWORD bi=1;
		bi=bi<<i;
		if(flagval&bi)
			dc.SelectObject(highbr);
		else
			dc.SelectObject(lowbr);
		dc.Ellipse(rect);
		rect.left+=(lampsize+space);
		rect.right=rect.left+lampsize;
	}

}

void CMyStatic::OnLButtonDown(UINT nFlags, CPoint point) 
{
	// TODO: Add your message handler code here and/or call default
	if (!enlbd)
		return;
	if (point.y<starpos || point.y>starpos+lampsize)
		return;
	int i=point.x/(lampsize+space);
	int j=point.x%(lampsize+space);
	DWORD bi=1;
	if (j<(lampsize)&&i<bitcount){
		bi<<=i;
		if(flagval&bi)
			flagval-=bi;
		else
			flagval=flagval | bi;
		Invalidate();
		}
	CStatic::OnLButtonDown(nFlags, point);
}

BOOL CMyStatic::EnableLeftBD(BOOL enable)
{
	enlbd=enable;
	return enlbd;
}

⌨️ 快捷键说明

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