Click here to Skip to main content
15,896,201 members
Articles / Desktop Programming / MFC

FaderWnd - a Window Fader for Windows 2000

Rate me:
Please Sign up or sign in to vote.
4.65/5 (7 votes)
28 Jun 2000 164.2K   3.1K   56  
An MFC class to fade any window with only one line of code.
/*----------------------------------------------------------------------------*/
/*            CFaderWnd header                                                */
/*----------------------------------------------------------------------------*/
//
//	File:			FaderWnd.h
//	Author:		Phil J. Pearson
//	Created:	20 June 2000  14:26
//	Last Mod: 20 June 2000  14:47
//
/*----------------------------------------------------------------------------
/*
/* Copyright (C) 2000 by Real World Software
/* All Rights Reserved.
/*
/*----------------------------------------------------------------------------*/

#pragma once

#ifndef WS_EX_LAYERED
/////////////////////////////////////////////////////////////////////////////
// Definitions copied from WinUser.h
// They're normally available if you do:
//	#define _WIN32_WINNT 0x0500
//   but we don't need all that stuff for this class
//
#define WS_EX_LAYERED           0x00080000
#define ULW_ALPHA               0x00000002
#endif // ndef WS_EX_LAYERED


typedef BOOL (WINAPI *lpfnUpdateLayeredWindow)(HWND hWnd, HDC hdcDst, POINT *pptDst, SIZE *psize, HDC hdcSrc, 
																								POINT *pptSrc, COLORREF crKey, BLENDFUNCTION *pblend, DWORD dwFlags);


/////////////////////////////////////////////////////////////////////////////
// CFaderWnd window

class CFaderWnd : public CWnd
{
// Construction
public:
	CFaderWnd(CWnd *pWndToFade, UINT nFadeTime = 2000, BYTE byAlpha = 255);

// Attributes
public:

// Operations
public:

// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CFaderWnd)
	protected:
	virtual void PostNcDestroy() { delete this; }
	//}}AFX_VIRTUAL

// Implementation
private:
	virtual ~CFaderWnd();

	// Generated message map functions
protected:
	//{{AFX_MSG(CFaderWnd)
	afx_msg void OnTimer(UINT nIDEvent);
	afx_msg void OnSetFocus(CWnd* pOldWnd);
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()

	lpfnUpdateLayeredWindow m_pUpdateLayeredWindow;

	BLENDFUNCTION m_Blend;
	CWnd			 *m_pWndToFade;
};

/////////////////////////////////////////////////////////////////////////////

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here


Written By
United Kingdom United Kingdom
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.

Comments and Discussions