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

📄 windowanima.h

📁 很好的源代码哦 大家赶紧下载哦 没有任何限制的
💻 H
字号:
// WindowAnima.h: interface for the CWindowAnima class.
//
//////////////////////////////////////////////////////////////////////
/*
 *
 *
 *  Copyright (c) 2002 DigitalConvict <ax@digitalconvict.com>
 *  All rights reserved.
 *
 * Modified by jingzhou xu
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 *
 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 * SUCH DAMAGE.
 *
 * 
 */

#if !defined(AFX_WINDOWANIMA_H__6007F99C_1E5E_459B_8BCC_E00CE41F8A74__INCLUDED_)
#define AFX_WINDOWANIMA_H__6007F99C_1E5E_459B_8BCC_E00CE41F8A74__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#define WA_LEFT		0
#define WA_RIGHT	1
#define WA_UP		2
#define WA_DOWN		3
#define WA_VERT		4
#define WA_HORZ		5
#define WA_RAND		6
#define WA_AUTO		7

#define WA_TASKBAR_OFF	0
#define WA_TASKBAR_ON	1

#define WA_SCR_SKIPCAPTURE		1	// don't capture the screen on each animation
#define WA_WND_SKIPCAPTURE		2	// don't capture the window image
#define WA_WND_SKIPRESTORE		4	// don't restore the window or window background
									//  after an animation
#define WA_KEEP_WINDOW_HIDDEN	8	// don't restore the window after an animation
#define WA_KEEP_BKGRND_HIDDEN	16	// don't restore the window background after an animation
#define WA_KEEP_TASKBAR_ONTOP	32	// don't draw the animation over the taskbar
#define WA_SKIPHIDEONCAPTURE	64	// don't hide the window after capturing the screen


class CWindowAnima  
{
public:
	CWindowAnima();
	CWindowAnima(CWnd *pWnd, UINT nFlags=0x0);
	virtual ~CWindowAnima();
	CWnd* GetWindow();
	UINT FlagUnset(UINT nFlags);
	UINT FlagSet(UINT nFlags);
	BOOL FlagIsSet(UINT nFlags);
	BOOL CopyWindowCapture(CWindowAnima *pWA);
	BOOL CopyScreenCapture(CWindowAnima *pWA);
	BOOL ReplaceWindowImage(UINT nResID);
	BOOL ReplaceWindowImage(CDC *pdc);
	BOOL SetClippingRegion(int l, int t, int r, int b);
	BOOL SetClippingRegion(CRect &ClipRect);
	void GetClippingRegion(CRect *pEmptyRect);
	void SetWindow(CWnd *pWnd);
	void GetWindowRect(CRect *pRect);
	void MoveWindowPosition(int x, int y);
	void ShowWindow();
	void RestoreWindow(BOOL bIgnoreFlags=TRUE);
	void UnBlind(int nDirection=WA_VERT, int nSegments=8, int nGapFactor=4, int nSleeptime=100);
	void Blind(int nDirection=WA_VERT, int nSegments=8, int nGapFactor=4, int nSleeptime=100);
	void Wipe(int nDirection=WA_RAND, int nWipeFactor=4, int nSleeptime=20);
	void UnWipe(int nDirection=WA_RAND, int nWipeFactor=4, int nSleeptime=20);
	void Melt(int nDirection=WA_AUTO, int nSegments=6, int nStagger=40, int nSleeptime=1);
	void UnMelt(int nDirection=WA_AUTO, int nSegments=6, int nStagger=40, int nSleeptime=1);
	void Scatter4(int nDistance=90, int nMoveFactor=4, int nSleeptime=1);
	void Scatter6(int nDistance=90, int nMoveFactor=4, int nSleeptime=1);
	void ReAssemble4(int nDistance=90, int nMoveFactor=4, int nSleeptime=1);
	void ReAssemble6(int nDistance=90, int nMoveFactor=4, int nSleeptime=1);
	void SlideAppear(int nSlideFactor=1, int nScaleFactor=15, int nSlideDelay=10, int nAppearDelay=0);
	void SlideVanish(int nSlideFactor=1, int nScaleFactor=15, int nSlideDelay=10, int nVanishDelay=0);

protected:
	void BlindHorz(int nSegments, int nGapFactor, int nSleeptime);
	void BlindVert(int nSegments, int nGapFactor, int nSleeptime);
	void UnBlindHorz(int nSegments, int nGapFactor, int nSleeptime);
	void UnBlindVert(int nSegments, int nGapFactor, int nSleeptime);
	void UnWipeDown(int nWipeFactor, int nSleeptime);
	void UnWipeUp(int nWipeFactor, int nSleeptime);
	void UnWipeRight(int nWipeFactor, int nSleeptime);
	void UnWipeLeft(int nWipeFactor, int nSleeptime);
	void UnWipeVert(int nWipeFactor, int nSleeptime);
	void UnWipeHorz(int nWipeFactor, int nSleeptime);
	void WipeUp(int nWipeFactor, int nSleeptime);
	void WipeDown(int nWipeFactor, int nSleeptime);
	void WipeRight(int nWipeFactor, int nSleeptime);
	void WipeLeft(int nWipeFactor, int nSleeptime);
	void WipeVert(int nWipeFactor, int nSleeptime);
	void WipeHorz(int nWipeFactor, int nSleeptime);
	void UnMeltDown(int nSegments, int nDrop, int nSleeptime);
	void UnMeltUp(int nSegments, int nDrop, int nSleeptime);
	void UnMeltRight(int nSegments, int nDrop, int nSleeptime);
	void UnMeltLeft(int nSegments, int nDrop, int nSleeptime);
	void MeltUp(int nSegments, int nDrop, int nSleeptime);
	void MeltDown(int nSegments, int nDrop, int nSleeptime);
	void MeltRight(int nSegments, int nDrop, int nSleeptime);
	void MeltLeft(int nSegments, int nDrop, int nSleeptime);
	void InitialSetup();
	void Initialise();
	void CaptureWindowImage(CWnd *pWnd);
	void CaptureScreenImage(CWnd *pWnd);
	void PrintImageBehindWindow();
	void HideWindow();
	void PrintWindow();
	void SetWindowSize(int nWidth, int nHeight);
	void ToggleTaskBarOnTop(UINT);
	void SetScreenDimensions(CRect &ScrRect);
	int GetClosestSide();
	int GetRandomDirection(int nDirections);
	BOOL InjectScreenImage(CDC *pdcMemScr);
	BOOL InjectWindowImage(CDC *pdcMemWnd, CRect *prectWnd);
	BOOL m_TaskBarClippingOn;		// used to tell if task bar clipping is on/off
	CWnd *m_pWnd;					// pointer to the window being animated
	CDC *m_pdcMemWnd;				// pointer to the off screen "Window" memory dc
	CDC *m_pdcMemScr;				// pointer to the off screen "Screen" memory dc
	CClientDC *m_pdcScreen;			// pointer to the on screen dc
	CBitmap* m_pOldBitmapScr;		// holds old selected screen bitmap
	CBitmap* m_pOldBitmapWnd;		// holds old selected window bitmap
	CRect m_rectWnd;				// holds window position
	CRect m_rectScr;				// holds screen position
	CSize m_czWnd;					// holds window dimensions
	CSize m_czScr;					// holds screen dimensions
	UINT m_nFlags;					// used to find which flags (if any) are set
};

#endif // !defined(AFX_WINDOWANIMA_H__6007F99C_1E5E_459B_8BCC_E00CE41F8A74__INCLUDED_)

⌨️ 快捷键说明

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