![]() |
Desktop Development »
Static & Panel Controls »
General
Intermediate
CLEDScreen class - LED digital screen with transparencyBy olden69A CStatic derived digital LED screen with transparency. Based on "CStaticTime class" of Jason Hattingh. |
VC6, VC7, VC7.1Win2K, WinXP, MFC, VS.NET2003, DBA, Dev
|
|
Advanced Search Add to IE Search |
|
|
|
||||||||||||||||

Firstly, excuse me for my bad English.
I long searched for such a class which would allow me to emulate the beautiful digital screen in my program. Class CStaticTime (author Jason Hattingh, An LED time and value display control) appeared better than others. But in this class, there was no opportunity to set a transparency and there were not many functions necessary to me. Therefore, I have considerably altered the class CStaticTime, and the new class CLEDScreen has only a few similarities with the original.
As for most simple cases, realization of a transparency for me was the use of the function TransparentBlt(). I have refused drawing directly at a window and have applied drawing in memory ("background canvas").
At initialization of a class in memory, "the storehouse of ready symbols" (symbDC) is created and also "background canvas" (backDC). During change of contents of the LEDScreen, the class takes from symbDC a ready symbol necessary and transfers it to backDC. When it is necessary to update a window, a class takes the contents of backDC and transfers it to a window with TransparentBlt().
Using the class is very simple.
CStatic. With ClassWizard, create variable m_screen for this CStatic.
CStatic m_screen to CLEDScreen m_screen. Like this: // MyDlg.h class CMyDlg : public CDialog { public: ... // Dialog Data //{{AFX_DATA(CMyDlg) enum { IDD = IDD_MY_DLG }; CLEDScreen m_screen; ... //}}AFX_DATA ... }
OnInitDialog() a code of initialization of an object m_screen, like this: // MyDlg.cpp BOOL CMyDlg::OnInitDialog() { ... m_screen.SetBackWnd(&m_stback); //CStatic m_stback (picture) m_screen.SetColourForeGround(RGB(0,0,0)); m_screen.SetColourFaded(RGB(55,136,230)); m_screen.SetRightAlignement(); m_screen.SetDrawTransparent(true); m_screen.SetDrawFaded(true); m_screen.SetSymbolParams(0, 5, 0, 2); ... }
CLEDScreen::Append(CString str), etc.: CLEDScreen::Append(CString str);
CLEDScreen::Backspace();
CLEDScreen::Clear();
CLEDScreen::StepBack(); //scrolling
CLEDScreen::StepForward(); //scrollingCStatic for background picture. | You must Sign In to use this message board. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
General
News
Question
Answer
Joke
Rant
Admin
|
PermaLink |
Privacy |
Terms of Use
Last Updated: 25 Jan 2005 Editor: Smitha Vijayan |
Copyright 2005 by olden69 Everything else Copyright © CodeProject, 1999-2009 Web21 | Advertise on the Code Project |