亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? windowanima.cpp

?? 白云水庫電力管理系統(tǒng)--baiyunPowermanagementsystem
?? CPP
?? 第 1 頁 / 共 5 頁
字號:

		// repaint original screen to avoid animation trail
		m_pdcScreen->BitBlt(wx+xs1-a,wy+ys1-b,czDiv.cx,czDiv.cy,m_pdcMemScr,
			wx+xs1-a,wy+ys1-b,SRCCOPY);
		m_pdcScreen->BitBlt(wx+xs2,wy+ys2-b, czDiv.cx,czDiv.cy,m_pdcMemScr,
			wx+xs2,wy+ys2-b,SRCCOPY);
		m_pdcScreen->BitBlt(wx+xs3+a,wy+ys3-b, czDiv.cx,czDiv.cy,m_pdcMemScr,
			wx+xs3+a,wy+ys3-b,SRCCOPY);
		m_pdcScreen->BitBlt(wx+xs4-a,wy+ys4+b, czDiv.cx,czDiv.cy,m_pdcMemScr,
			wx+xs4-a,wy+ys4+b,SRCCOPY);
		m_pdcScreen->BitBlt(wx+xs5,wy+ys5+b, czDiv.cx,czDiv.cy,m_pdcMemScr,
			wx+xs5,wy+ys5+b,SRCCOPY);
		m_pdcScreen->BitBlt(wx+xs6+a,wy+ys6+b, czDiv.cx,czDiv.cy,m_pdcMemScr,
			wx+xs6+a,wy+ys6+b,SRCCOPY);

		a+=nMove;
		b+=nMove;
	}
}

/************************************************************************************
	Six separate parts of a window fly from different directions to a central point
	where they join to make a full window.
************************************************************************************/
void CWindowAnima::ReAssemble6(int nDistance, int nMoveFactor, int nSleeptime)
{
	// Do any pre-animation initialisations
	Initialise();

	int nSteps=nDistance;
	int nMove=nMoveFactor;
	int a=nMove*nSteps;
	int b=a;
	int wx=m_rectWnd.left, wy=m_rectWnd.top;
	CPoint cptWindowCenter=m_rectWnd.CenterPoint();
	CSize czDiv(m_czWnd.cx/3, m_czWnd.cy/2);
	int xs1,ys1,xs2,ys2,xs3,ys3,xs4,ys4,xs5,ys5,xs6,ys6;
	xs1=0;
	ys1=0;
	xs2=czDiv.cx;
	ys2=0;
	xs3=czDiv.cx*2;
	ys3=0;
	xs4=0;
	ys4=czDiv.cy;
	xs5=czDiv.cx;
	ys5=czDiv.cy;
	xs6=czDiv.cx*2;
	ys6=czDiv.cy;

	for(int i=0;i<nSteps;i++){
		m_pdcScreen->BitBlt(wx+xs1-a,wy+ys1-b,czDiv.cx,czDiv.cy,m_pdcMemWnd,
			xs1,ys1,SRCCOPY);
		m_pdcScreen->BitBlt(wx+xs2,wy+ys2-b, czDiv.cx,czDiv.cy,m_pdcMemWnd,
			xs2,ys2,SRCCOPY);
		m_pdcScreen->BitBlt(wx+xs3+a,wy+ys3-b, czDiv.cx,czDiv.cy,m_pdcMemWnd,
			xs3,ys3,SRCCOPY);
		m_pdcScreen->BitBlt(wx+xs4-a,wy+ys4+b, czDiv.cx,czDiv.cy,m_pdcMemWnd,
			xs4,ys4,SRCCOPY);
		m_pdcScreen->BitBlt(wx+xs5,wy+ys5+b, czDiv.cx,czDiv.cy,m_pdcMemWnd,
			xs5,ys5,SRCCOPY);
		m_pdcScreen->BitBlt(wx+xs6+a,wy+ys6+b, czDiv.cx,czDiv.cy,m_pdcMemWnd,
			xs6,ys6,SRCCOPY);

		Sleep(nSleeptime);

		// repaint original screen to avoid animation trail
		m_pdcScreen->BitBlt(wx+xs1-a,wy+ys1-b,czDiv.cx,czDiv.cy,m_pdcMemScr,
			wx+xs1-a,wy+ys1-b,SRCCOPY);
		m_pdcScreen->BitBlt(wx+xs2,wy+ys2-b, czDiv.cx,czDiv.cy,m_pdcMemScr,
			wx+xs2,wy+ys2-b,SRCCOPY);
		m_pdcScreen->BitBlt(wx+xs3+a,wy+ys3-b, czDiv.cx,czDiv.cy,m_pdcMemScr,
			wx+xs3+a,wy+ys3-b,SRCCOPY);
		m_pdcScreen->BitBlt(wx+xs4-a,wy+ys4+b, czDiv.cx,czDiv.cy,m_pdcMemScr,
			wx+xs4-a,wy+ys4+b,SRCCOPY);
		m_pdcScreen->BitBlt(wx+xs5,wy+ys5+b, czDiv.cx,czDiv.cy,m_pdcMemScr,
			wx+xs5,wy+ys5+b,SRCCOPY);
		m_pdcScreen->BitBlt(wx+xs6+a,wy+ys6+b, czDiv.cx,czDiv.cy,m_pdcMemScr,
			wx+xs6+a,wy+ys6+b,SRCCOPY);

		a-=nMove;
		b-=nMove;
	}
	RestoreWindow(FALSE);
}

/************************************************************************************
	Checks that the Window pointer is not null and then captures a copy of
	the entire users screen area.
************************************************************************************/
void CWindowAnima::Initialise()
{
	ASSERT(m_pWnd!=NULL);

	// if task bar clipping is on then set the clipping region to
	// exclude drawing over the task bar else if task bar clipping WAS on
	// and and the flag is no longer set then turn task bar clipping off
	if(FlagIsSet(WA_KEEP_TASKBAR_ONTOP)){
		ToggleTaskBarOnTop(WA_TASKBAR_ON);
		m_TaskBarClippingOn=TRUE;
	} else if(m_TaskBarClippingOn) {
		ToggleTaskBarOnTop(WA_TASKBAR_OFF);
		m_TaskBarClippingOn=FALSE;
	}

	// Capture a copy of the screen within the clipping region
	CaptureScreenImage(m_pWnd);
}

/************************************************************************************
	Captures a copy of the users entire screen area and saves the data into the
	member variable m_pdcMemScr.  Also sets the dimensions of the screen in
	m_czScr.  Finally it hides the window from view, and copies the portion of the
	screen that was behind the window into the memory buffer.
************************************************************************************/
void CWindowAnima::CaptureScreenImage(CWnd *pWnd)
{
	if(m_nFlags & WA_SCR_SKIPCAPTURE)
		return;

	CBitmap bmWindow;

	ASSERT(m_pWnd!=NULL);

	// capture a copy of the screen area within our clipping region
	m_pdcMemScr->BitBlt(m_rectScr.left,m_rectScr.top,m_czScr.cx,m_czScr.cy,
		m_pdcScreen,m_rectScr.left,m_rectScr.top,SRCCOPY);

	// hide the window and capture the part of the screen that was
	// hidden behind it.  This reduces flicker if the window needs to be
	// visible again immediately after screen capture
	HideWindow();
	m_pdcMemScr->BitBlt(m_rectWnd.left,m_rectWnd.top,m_rectWnd.Width(),
		m_rectWnd.Height(),m_pdcScreen,m_rectWnd.left,m_rectWnd.top,SRCCOPY);
}

/************************************************************************************
	Captures a copy of the window image pointed to by pWnd unless the
	WA_WND_SKIPCAPTURE flag is set.  The window must be visible when 
	CaptureWindowImage() is called or the program will ASSERT in debug mode.
	When a window image is capture the size and position of the window are also
	recorded.
************************************************************************************/
void CWindowAnima::CaptureWindowImage(CWnd *pWnd)
{
	if(m_nFlags & WA_WND_SKIPCAPTURE)
		return;

	// make sure the window is visible
	ASSERT(pWnd->IsWindowVisible());

	// create a WindowDC object
	CWindowDC dcWindow(pWnd);

	// get window position & size data;
	pWnd->GetWindowRect(&m_rectWnd);

	CBitmap bmWindow;

	// copy size data to member variables
	m_czWnd.cx=m_rectWnd.Width();
	m_czWnd.cy=m_rectWnd.Height();

	// if there is already a window stored in our CWindowAnima object
	// the delete it.
	if(m_pdcMemWnd!=NULL){
		m_pdcMemWnd->SelectObject(m_pOldBitmapWnd);
		delete m_pdcMemWnd;
	}

	// create a new CDC memory object to store the image of the window
	m_pdcMemWnd=new CDC;

	// create a compbatible bitmap area to draw to
	bmWindow.CreateCompatibleBitmap(&dcWindow,m_czWnd.cx,m_czWnd.cy);

	m_pdcMemWnd->CreateCompatibleDC(&dcWindow);
	m_pOldBitmapWnd=m_pdcMemWnd->SelectObject(&bmWindow);

	// copy the image of the window into our dc memory buffer
	m_pdcMemWnd->BitBlt(0,0,m_czWnd.cx,m_czWnd.cy,&dcWindow,0,0,SRCCOPY);
}

/************************************************************************************
	Choose the direction in which to Melt a window.
************************************************************************************/
void CWindowAnima::Melt(int nDirection, int nSegments, 
						int nStagger, int nSleeptime)
{
	// Do any pre-animation initialisations
	Initialise();

	switch(nDirection){
	case WA_AUTO:
		nDirection=GetClosestSide();
		break;
	case WA_RAND:
		nDirection=GetRandomDirection(4);
		break;
	}

	switch(nDirection){
	case WA_LEFT:
		MeltLeft(nSegments, nStagger, nSleeptime);
		break;
	case WA_RIGHT:
		MeltRight(nSegments, nStagger, nSleeptime);
		break;
	case WA_UP:
		MeltUp(nSegments, nStagger, nSleeptime);
		break;
	case WA_DOWN:
		MeltDown(nSegments, nStagger, nSleeptime);
		break;
	}
}

/************************************************************************************
	Paints an image of the window onto the screen at the window's existing postion.
	When a window is processing an intensive loop, the interface sometimes remains
	blank, by printing a copy of the window to the screen instead of showing the
	actual window we avoid this.
************************************************************************************/
void CWindowAnima::PrintWindow()
{
	m_pdcScreen->BitBlt(m_rectWnd.left, m_rectWnd.top, 
		m_czWnd.cx, m_czWnd.cy, m_pdcMemWnd,0,0,SRCCOPY);
}

/************************************************************************************
	Restores the window and the proper background of the window to its existing
	location.  Internally RestoreWindow() is called with its parameter set to
	FALSE so that m_nFlags will be checked for the WA_KEEP_WINDOW_HIDDEN flag.
	Calling RestoreWindow() externally with no parameters causes the function
	to use the default value TRUE as its parameter and therefore ignore the value
	of the flags.  It is assumed that the only reason a user would call this function
	explicitly is to actually restore a window irrespective of what the flags are
	set to.
************************************************************************************/
void CWindowAnima::RestoreWindow(BOOL bIgnoreFlags)
{
	if(bIgnoreFlags || !(m_nFlags & WA_WND_SKIPRESTORE)){
		if(bIgnoreFlags || !(m_nFlags & WA_KEEP_BKGRND_HIDDEN))
			PrintImageBehindWindow();
		if(bIgnoreFlags || !(m_nFlags & WA_KEEP_WINDOW_HIDDEN))
			ShowWindow();
	}
}

/************************************************************************************
	Choose in which direction to Melt a window.
************************************************************************************/
void CWindowAnima::UnMelt(int nDirection, int nSegments,
						  int nStagger, int nSleeptime)
{
	// Do any pre-animation initialisations
	Initialise();

	switch(nDirection){
	case WA_AUTO:
		nDirection=GetClosestSide();
		break;
	case WA_RAND:
		nDirection=GetRandomDirection(4);
		break;
	}

	switch(nDirection){
	case WA_LEFT:
		UnMeltLeft(nSegments, nStagger, nSleeptime);
		break;
	case WA_RIGHT:
		UnMeltRight(nSegments, nStagger, nSleeptime);
		break;
	case WA_UP:
		UnMeltUp(nSegments, nStagger, nSleeptime);
		break;
	case WA_DOWN:
		UnMeltDown(nSegments, nStagger, nSleeptime);
		break;
	}

	RestoreWindow(FALSE);
}

/************************************************************************************
	Simply calls the CWnd function ShowWindow to hide the window from view.
************************************************************************************/
void CWindowAnima::HideWindow()
{
	// don't hide the window if the WA_SKIPHIDEONCAPTURE flag is set
	if(!(m_nFlags & WA_SKIPHIDEONCAPTURE)){
		m_pWnd->ShowWindow(SW_HIDE);

		// sleep for 10 milliseconds because we generally do a screen capture
		// after hiding the window.  Windows doesn't always hide the window as
		// quickly as we'd like so sometimes we get half the window remaining
		// splashed across the screen.  By sleeping we give Windows time to fully
		// hide the window and if you can't wait an extra 10 millisecs then window
		// animations are not for you anyway!!!!
		Sleep(10);
	}
}

/************************************************************************************
	Prints the correct background that a window should have when it has been
	restored subsequent to an animation.
************************************************************************************/
void CWindowAnima::PrintImageBehindWindow()
{
	m_pdcScreen->BitBlt(m_rectWnd.left, m_rectWnd.top, 
		m_czWnd.cx, m_czWnd.cy, m_pdcMemScr,m_rectWnd.left, m_rectWnd.top,
		SRCCOPY);
}

/************************************************************************************
	Creates a vertical blinds disappearing effect on the window
************************************************************************************/
void CWindowAnima::BlindVert(int nSegments, int nGapFactor, int nSleeptime)
{
	int wx=m_rectWnd.left, wy=m_rectWnd.top;
	int segWidth=m_czWnd.cx/nSegments;
	int istop=m_czWnd.cx;
	int stepcum=0;
	int nGapWidth=nGapFactor;

	PrintWindow();

	for(int gap=nGapWidth;stepcum<segWidth;gap+=nGapWidth){
		for(int i=0;i<=istop;i+=segWidth){
			m_pdcScreen->BitBlt(wx+i+stepcum,wy, gap,m_czWnd.cy,
				m_pdcMemScr, wx+i+stepcum, wy, SRCCOPY);
		}
		stepcum+=gap;
		Sleep(nSleeptime);
	}
}

/************************************************************************************
	Creates a vertical blinds appearing effect on the window
************************************************************************************/
void CWindowAnima::UnBlindVert(int nSegments, int nGapFactor, int nSleeptime)
{
	// Do any pre-animation initialisations
	Initialise();

	int wx=m_rectWnd.left, wy=m_rectWnd.top;
	int segWidth=m_czWnd.cx/nSegments;
	int istop=m_czWnd.cx;
	int stepcum=0;
	int nGapWidth=nGapFactor;

	for(int gap=nGapWidth;stepcum<segWidth;gap+=nGapWidth){
		for(int i=0;i<=istop;i+=segWidth){
			m_pdcScreen->BitBlt(wx+i+stepcum,wy, gap,m_czWnd.cy,
				m_pdcMemWnd, i+stepcum, 0, SRCCOPY);
		}
		stepcum+=gap;
		Sleep(nSleeptime);
	}
}

/************************************************************************************
	Melts the window segment by segment towards the left of the screen
************************************************************************************/
void CWindowAnima::MeltLeft(int nSegments, int nDrop, int nSleeptime)
{
	int wx=m_rectWnd.left, wy=m_rectWnd.top;
	int cumulator=0, cumulator2=0;
	int step=nDrop;

	// calculates how many iterations we'll need to get the whole window
	// off screen
	int nVisibleLimit=(m_rectWnd.right/step)+3;

	// calculate the width of each segment based on the number of segments given
	int segWidth=m_czWnd.cy/nSegments;

	if(m_czWnd.cy%nSegments!=0)
		nSegments++;

	// draw a copy of the window onto the screen
	PrintWindow();

	// while the window is still visible
	for(int a=0;a<nVisibleLimit;a++){
		// foreach segment
		for(int seg=0;seg<nSegments;seg++){
			if(a>0)
				seg=nSegments;
			int nSegOffset=0;
			int nStepHeight=0;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产人伦精品一区二区| 亚洲日本护士毛茸茸| 色呦呦网站一区| 91在线精品秘密一区二区| 国产精品伊人色| 国产精品亚洲午夜一区二区三区| 美女www一区二区| 日韩av不卡一区二区| 青青草伊人久久| 国内不卡的二区三区中文字幕| 九九视频精品免费| 国产精品一区二区男女羞羞无遮挡| 国产剧情av麻豆香蕉精品| 日韩精品一区在线| 欧美精品一区二区三区蜜臀| 久久影音资源网| 亚洲色图欧洲色图婷婷| 一区二区三区四区精品在线视频| 亚洲国产成人av网| 欧美aaaaaa午夜精品| 国产一区视频网站| 色天使色偷偷av一区二区| 天堂成人免费av电影一区| 美女网站视频久久| 成人美女视频在线观看18| 在线观看亚洲专区| 精品国产一区二区三区不卡| 国产精品蜜臀在线观看| 香蕉久久夜色精品国产使用方法| 久久99精品一区二区三区三区| 日韩免费观看高清完整版在线观看| 久久在线观看免费| 亚洲精品大片www| 久久精品久久精品| 色综合亚洲欧洲| 日韩精品一区二区三区在线观看| 国产精品色在线| 亚洲va欧美va人人爽| 国产一区二区三区在线看麻豆| 中文字幕在线观看不卡视频| 日韩av电影免费观看高清完整版在线观看 | 日韩午夜中文字幕| 国产欧美视频在线观看| 亚洲五码中文字幕| 国产91丝袜在线播放0| 日日夜夜精品视频免费| 久久久久久免费网| 五月开心婷婷久久| av不卡一区二区三区| 精品日韩一区二区| 亚洲成人资源网| 91原创在线视频| 久久婷婷色综合| 亚洲欧美日韩一区二区| 黄页视频在线91| 日韩av网站在线观看| 91浏览器入口在线观看| 欧美高清在线精品一区| 奇米影视在线99精品| 91久久国产综合久久| 亚洲国产成人午夜在线一区| 国产在线日韩欧美| 3d动漫精品啪啪一区二区竹菊| 亚洲色图色小说| 成人国产亚洲欧美成人综合网| 精品亚洲国产成人av制服丝袜| 欧美亚州韩日在线看免费版国语版| 国产精品国产三级国产a| 国内国产精品久久| 精品av综合导航| 激情久久五月天| 亚洲精品在线一区二区| 麻豆91在线观看| 欧美精品一区二| 国内久久精品视频| 久久中文娱乐网| 国产一区二区女| 国产欧美一区二区三区在线老狼| 国产成人在线免费观看| 国产女人18毛片水真多成人如厕 | 椎名由奈av一区二区三区| 国产成人免费av在线| 国产亚洲女人久久久久毛片| 国产米奇在线777精品观看| 精品国产91久久久久久久妲己| 精品一区精品二区高清| www国产成人免费观看视频 深夜成人网| 秋霞午夜av一区二区三区| 欧美大片日本大片免费观看| 国产精品资源站在线| 国产精品系列在线| 色综合一个色综合| 日韩高清在线一区| 欧美精品一区二区精品网| 国产精品1区2区| 亚洲另类春色校园小说| 欧美日韩亚洲另类| 欧美嫩在线观看| 久久99精品国产91久久来源| 国产亚洲美州欧州综合国| 一本一本大道香蕉久在线精品| 国产精品综合视频| 亚洲欧美日韩国产成人精品影院| 欧美日韩高清不卡| 久久99精品久久久| 日韩毛片一二三区| 欧美男女性生活在线直播观看| 久久99国产精品久久| 亚洲欧洲日韩女同| 日韩一级黄色片| 亚洲国产精品av| 欧美日韩国产一区| 国产一区二区三区在线观看免费| 亚洲色图在线播放| 精品国产乱子伦一区| 91色.com| 国产成人精品亚洲日本在线桃色 | 91丨porny丨首页| 日韩国产精品大片| 亚洲欧美日韩系列| 久久久精品国产99久久精品芒果 | 激情综合色综合久久| 国产精品国产三级国产普通话99| 777午夜精品视频在线播放| 成人三级伦理片| 国内精品免费在线观看| 午夜精品久久久久久久99水蜜桃 | 欧美videos中文字幕| 99九九99九九九视频精品| 人人爽香蕉精品| 亚洲www啪成人一区二区麻豆| 国产精品私房写真福利视频| 日韩精品中文字幕一区| 欧美午夜一区二区三区| 91麻豆自制传媒国产之光| 国产一区欧美一区| 老鸭窝一区二区久久精品| 亚洲伊人伊色伊影伊综合网 | 欧美自拍丝袜亚洲| 成人一区在线观看| 国内成人精品2018免费看| 亚洲成av人片一区二区梦乃| 亚洲精品va在线观看| 日韩一区有码在线| 国产精品水嫩水嫩| 国产日韩精品视频一区| 2019国产精品| 欧美精品一区二区在线观看| 久久综合久久鬼色中文字| 日韩欧美激情在线| 日韩视频在线永久播放| 91精品国产手机| 欧美一区二区美女| 91麻豆国产福利在线观看| 久久成人av少妇免费| 激情图片小说一区| 6080午夜不卡| 欧美一级欧美三级在线观看| 欧美一区二区三区免费在线看| 777午夜精品免费视频| 日韩一区二区中文字幕| 天堂成人国产精品一区| 久久激情五月激情| 国产在线不卡一区| 粉嫩av一区二区三区粉嫩| 不卡高清视频专区| 国产资源精品在线观看| 粉嫩蜜臀av国产精品网站| 99久久久国产精品免费蜜臀| 色先锋资源久久综合| 欧美日韩在线播| 欧美不卡激情三级在线观看| 久久久久99精品一区| 一区免费观看视频| 亚洲一区二区三区激情| 奇米色777欧美一区二区| 国产精品正在播放| 色婷婷综合五月| 3d动漫精品啪啪1区2区免费 | 欧美电影免费观看高清完整版 | 欧美精品亚洲一区二区在线播放| 在线不卡中文字幕| 久久久99精品免费观看| 亚洲欧美一区二区久久 | 国产综合久久久久影院| av在线综合网| 欧美日韩国产一区二区三区地区| 91精品国产综合久久久久久 | 91精选在线观看| 免费在线欧美视频| 国产福利一区二区三区在线视频| 成人激情免费视频| 在线观看www91| 国产亚洲综合性久久久影院| 亚洲三级理论片| 国产麻豆视频一区二区| 欧美性猛交xxxxxx富婆| 精品日韩99亚洲| 亚洲成人动漫在线观看| 春色校园综合激情亚洲|