|
|||||||||||||||||||||||
|
|||||||||||||||||||||||
|
Announcements
Chapters
Services
Feature Zones
|
IntroductionDid you ever notice that when you shutdown Windows/XP there is a fading effect from color to B/W on the desktop? Ok that's the objective of this article, a simple way to capture a given window and fade it in an inactive status. The main idea to perform this operation is quite simple: the code basically creates a fading-window over the target one. This fading-window has all the needing to make this simple animation and the complete implementation is not long and it's based on 3 parts:
Notice: this code will work only on 16, 24 or 32 bit display color mode. Using the codeThere are basically 2 modalities to perform the fading process: automatic and controlled. Automatic - this is the simplest way, and it can be used to put the given window in a "relaxed" mode - when the user will click on the given window, this will return to it's original status - here the simple steps to start with this operation:
Controlled - don't worry, this is quite easy too, the difference is that we want to control the moment the fading effect must finish. For this, I have assumed that the fading operation must simply be done before a modal window call - here the steps:
Difficult? Let's code!Remember, first at all, add the FadeWnd.h and FadeWnd.cpp, to your project. To do this, copy these 2 files in the folder of your project, and from the [Project] menu item of the Visual Studio, choose [Add to Project] -> [Files] voice. Select the 2. Next step, include the FadeWnd.h in the implementation code (.cpp) where you will call the fading effect. If you want to use the #include "FadeWnd.h" To use it in a simple way, you can perform the call: void CMakeInactiveDlg::OnButton1() { CFadeWnd::AutoFade(this); } Fade all the desktop: void CMakeInactiveDlg::OnButton2()
{
CFadeWnd::AutoFade(GetDesktopWindow());
}
Fade the given window for the necessary modal sub-window call: void CMakeInactiveDlg::OnButton3() { CFadeWnd wndFade(this); // modal window call as a DIALOG or a MESSAGEBOX AfxMessageBox( _T("Disabled until this message will be closed"), MB_OK | MB_ICONINFORMATION); } Fade using a different gradient color: void CMakeInactiveDlg::OnButton4() { CFadeWnd::AutoFade( this, // window to fade RGB(255,128, 64), // light color ref RGB( 64, 16, 0)); // dark color ref } // - or - void CMakeInactiveDlg::OnButton5() { CFadeWnd wndFade( this, // window to fade RGB(255,128, 64), // light color ref RGB( 64, 16, 0)); // dark color ref // modal window call as a DIALOG or a MESSAGEBOX AfxMessageBox( _T("Disabled until this message will be closed"), MB_OK | MB_ICONINFORMATION); } NoticesTo permit other programmers to change the behavior of this control, I have added 3 virtual members that can be easily overridden:
Play with the
|
||||||||||||||||||||||
|
PermaLink |
Privacy |
Terms of Use
Last Updated: 9 Nov 2003 Editor: Nishant Sivakumar |
Copyright 2003 by John A. Johnson Everything else Copyright © CodeProject, 1999-2008 Web20 | Advertise on the Code Project |