Dialog ekranda LED göstermek için:
Örnek sonra ekliyecem.
////// LED.H
class CLED : public CStatic
{
public:
CLED();
COLORREF m_crBkgnd, m_crFrgnd_ON, m_crFrgnd_OFF;
BOOL LED_State;
void SetLED(COLORREF crBkgnd, COLORREF crFrgnd_ON, COLORREF crFrgnd_OFF);
void SwitchOn();
void SwitchOff();
afx_msg void OnPaint();
void DrawLed(CDC *pdc);
DECLARE_MESSAGE_MAP()
};
////// LED.CPP
#include "stdafx.h"
#include "LED.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
CLED::CLED()
{
LED_State = FALSE;
}
BEGIN_MESSAGE_MAP(CLED, CStatic)
ON_WM_PAINT()
END_MESSAGE_MAP()
void CLED::SetLED(COLORREF crBkgnd, COLORREF crFrgnd_ON, COLORREF crFrgnd_OFF)
{
m_crBkgnd = crBkgnd,
m_crFrgnd_ON = crFrgnd_ON;
m_crFrgnd_OFF = crFrgnd_OFF;
}
void CLED::DrawLed(CDC *pDC)
{
CRect r;
// drawing rectangle
GetClientRect(&r);
CBrush bkgndBrush(m_crBkgnd);
pDC->FillRect(r, &bkgndBrush);
CPen PenLED, *oldPen;
CBrush BrushLED, *oldBr;
if (LED_State == FALSE)
{
PenLED.CreatePen(0 , 1, m_crFrgnd_OFF);
BrushLED.CreateSolidBrush(m_crFrgnd_OFF);
}
else
{
PenLED.CreatePen(0 , 1, m_crFrgnd_ON);
BrushLED.CreateSolidBrush(m_crFrgnd_ON);
}
oldPen = pDC->SelectObject(&PenLED);
oldBr = pDC->SelectObject(&BrushLED);
// Draw the actual colour of the LED
pDC->Ellipse(r);
// Draw a thin white coloured circle
CPen Penwhite;
Penwhite.CreatePen(0, 1, RGB(255,255,255));
pDC->SelectObject(&Penwhite);
pDC->Ellipse(r);
// Draw a gray arc at the bottom
CPen Pengray;
Pengray.CreatePen(0, 1, RGB(192,192,192));
pDC->SelectObject(&Pengray);
// The arc function is just to add a 3D effect for the control
CPoint ptStart,ptEnd;
ptStart = CPoint(r.Width()/2,r.bottom);
ptEnd = CPoint(r.right,r.top);
pDC->MoveTo(ptStart);
pDC->Arc(r,ptStart,ptEnd);
CBrush Brush;
Brush.CreateSolidBrush(RGB(255,255,255));
pDC->SelectObject(&Brush);
pDC->SelectObject(&Penwhite);
CPoint tl = r.TopLeft();
tl.Offset(r.Width()/4, r.Height()/4);
CRect rx(tl, CSize(4,4));
pDC->Ellipse(rx);
pDC->SelectObject(oldBr);
pDC->SelectObject(oldPen);
}
void CLED::OnPaint()
{
CPaintDC dc(this);
DrawLed(&dc);
}
void CLED::SwitchOn()
{
LED_State = TRUE;
CDC *pDC;
pDC = GetDC();
DrawLed(pDC);
ReleaseDC(pDC);
}
void CLED::SwitchOff()
{
LED_State = FALSE;
CDC *pDC;
pDC = GetDC();
DrawLed(pDC);
ReleaseDC(pDC);
}
(http://img115.yukle.tc/images/8402LED.JPG)
Bunu proje olarak uplaod edebilirmisiniz.
LEDCLK (http://rapidshare.com/files/96475900/LEDCLK.zip.html)
Visual Studio 2005 C++