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

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

?? spiderwnd.cpp

?? a dsp dll and sample
?? CPP
字號(hào):
// SpiderWnd.cpp : implementation file
//

#include "stdafx.h"
#include "SpiderWnd.h"
#include "DSP.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// SpiderWnd
#define  IDC_BTNABORT			56789					//放棄按鈕的ID
#define	 MSG_ASSIGNNEWSECT		12345
#define  MSG_CREATERECVTHREAD	12346

SpiderWnd*	SpiderWnd::pLastWnd	=NULL;

SpiderWnd::SpiderWnd()
{
}

SpiderWnd::~SpiderWnd()
{
	if(this->m_btnAbort.m_hWnd!=NULL)
	{
		this->m_btnAbort.DestroyWindow();
		this->m_staCurrLen.DestroyWindow();
		this->m_staFilename.DestroyWindow();
		this->m_staPrompt.DestroyWindow();
		this->m_progress.DestroyWindow();
	}
}



BEGIN_MESSAGE_MAP(SpiderWnd, CWnd)
	//{{AFX_MSG_MAP(SpiderWnd)
		// NOTE - the ClassWizard will add and remove mapping macros here.
	//}}AFX_MSG_MAP
	ON_MESSAGE(DSPSpider::MSG_SENDSECT,OnUpdateSect)
	ON_MESSAGE(DSPSpider::MSG_RECVSECT,OnUpdateSect)
	ON_MESSAGE(DSPSpider::MSG_SENDCOMPLETE,OnSendComplete)
	ON_MESSAGE(DSPSpider::MSG_SETFILENAMESIZE,OnSetFilenameSize)
	ON_MESSAGE(DSPSpider::MSG_SHOWPROMPT,OnShowPrompt)
	ON_MESSAGE(MSG_ASSIGNNEWSECT,OnAssignNewSect)
	ON_MESSAGE(MSG_CREATERECVTHREAD,OnCreateRecvThread)
//	ON_COMMAND(IDC_BTNABORT,OnAbort)
END_MESSAGE_MAP()


/////////////////////////////////////////////////////////////////////////////
// SpiderWnd message handlers

BOOL SpiderWnd::Create(int offx,int offy,int width, CWnd *pParentWnd)
{
	//創(chuàng)建窗體本身
	CRect rect(offx,offy,offx+width,offy+WND_HEIGHT);
	if(!CWnd::CreateEx(WS_EX_TOPMOST|WS_EX_STATICEDGE|WS_EX_TOOLWINDOW,
			AfxRegisterWndClass(CS_SAVEBITS,NULL,NULL,NULL),
			NULL,WS_POPUP|WS_DLGFRAME,rect,pParentWnd,NULL,NULL))
		return FALSE;

	CRect rectWnd;
	this->m_font.CreateFont(10,				// nHeight
					4,						// nWidth
					0,						// nEscapement
					0,						// nOrientation
					FW_MEDIUM,				// nWeight
					0,						// bItalic
					0,						// bUnderline
					0,						// bStrikeOut
					0,						// nCharSet
					OUT_DEFAULT_PRECIS,		// nOutPrecision
					CLIP_DEFAULT_PRECIS,	// nClipPrecision
					PROOF_QUALITY,			// nQuality
					0,						// nPitchAndFamily
					"Terminal");			// lpszFacename
	this->SetFont(&this->m_font);
	this->GetClientRect(rectWnd);
	this->ReviseContent(rectWnd);
	return TRUE;
}

void SpiderWnd::ReviseContent(CRect &rect)
{
	CRect rectProg,rectName,rectSize,rectCurr,rectPrompt,rectCancel;
	
	//名字、進(jìn)度條與窗體的寬度相同
	rectName	=rectProg	=rect;

	//計(jì)算名字的位置
	rectName.bottom		=WND_FONT_HEIGHT;

	//計(jì)算進(jìn)度條的位置
	rectProg.top		=rectName.bottom;
	rectProg.bottom		=rectProg.top+8;

	//計(jì)算下載字節(jié)數(shù)提示的位置
	rectCurr.left		=rect.left;
	rectCurr.top		=rectProg.bottom;
	rectCurr.bottom		=rectCurr.top+WND_FONT_HEIGHT;
	rectCurr.right		=rect.Width()/2;
	rectSize.left		=rectCurr.right;
	rectSize.right		=rect.right;
	rectSize.top		=rectCurr.top;
	rectSize.bottom		=rectCurr.bottom;

	//計(jì)算提示信息框的位置,放棄按鈕在提示信息框的右邊
	rectPrompt.top		=rectSize.bottom;
	rectPrompt.bottom	=rectPrompt.top+WND_BTN_WIDTH;
	rectPrompt.left		=rect.left;
	rectCancel.right	=rect.right;
	rectCancel.left		=rect.right-WND_BTN_WIDTH;
	rectCancel.top		=rectPrompt.top;
	rectCancel.bottom	=rectPrompt.bottom;
	rectPrompt.right	=rectCancel.left;

	if(this->m_progress.m_hWnd==NULL)
	{
		//如果按鈕沒(méi)有被創(chuàng)建
		this->m_staFilename.Create(NULL,WS_CHILD|WS_VISIBLE,rectName,this);
		this->m_progress.Create(WS_CHILD|WS_VISIBLE|PBS_SMOOTH,rectProg,this,0xFFFF);
		this->m_staPrompt.Create("start recv......",WS_CHILD|WS_VISIBLE,rectPrompt,this);
		this->m_btnAbort.Create("X",WS_CHILD|WS_VISIBLE,rectCancel,this,IDC_BTNABORT);
		this->m_staCurrLen.Create("(0K) 0",WS_CHILD|WS_VISIBLE|SS_RIGHT,rectCurr,this);
		this->m_staFilesize.Create("/0 (0K)",WS_CHILD|WS_VISIBLE,rectSize,this);
		this->m_staFilename.SetFont(&this->m_font,FALSE);
		this->m_staPrompt.SetFont(&this->m_font,FALSE);
		this->m_staCurrLen.SetFont(&this->m_font,FALSE);
		this->m_staFilesize.SetFont(&this->m_font,FALSE);
		this->m_btnAbort.SetFont(&this->m_font);
	}
}

LRESULT SpiderWnd::OnUpdateSect(WPARAM wParam, LPARAM lParam)
{
	CString str;
	DWORD dwSize	=this->m_spider.OnUpdateSect(wParam,lParam);
	this->m_progress.StepIt();
	str.Format("(%dK) %d",dwSize/1024,dwSize);
	this->m_staCurrLen.SetWindowText(str);
	return 0;
};

LRESULT SpiderWnd::OnSetFilenameSize(WPARAM wParam, LPARAM lParam)
{
	//設(shè)置文件的名字和大小
	DSPSpider::_FILEDETAIL* lphfd	=(DSPSpider::_FILEDETAIL*)wParam;

	//顯示文件名
	this->m_staFilename.SetWindowText(lphfd->strPathname);

	//顯示總的長(zhǎng)度
	CString str;
	str.Format("/ %d (%dK)",lphfd->dwFilesize,lphfd->dwFilesize/1024);
	this->m_staFilesize.SetWindowText(str);

	//初始化當(dāng)前接收的長(zhǎng)度
	this->m_staCurrLen.SetWindowText("0K");

	//初始化進(jìn)度顯示
	this->m_progress.SetRange32(0,lphfd->dwFilesize);
	this->m_progress.SetStep(this->m_spider.GetProgressStep());
	this->m_progress.SetPos(this->m_spider.GetCurrSize());
	return 0;
}

LRESULT SpiderWnd::OnSendComplete(WPARAM wParam, LPARAM lParam)
{
	LRESULT l	=this->m_spider.OnSendComplete(wParam,lParam);
	switch(l)
	{
		case 1:
			{
				//禁止關(guān)閉窗體按鈕
				this->m_btnAbort.EnableWindow(FALSE);

				//已全部下載完
				::AfxMessageBox("文件接收完成!");
			}
		case 2:
			//所有的線程都已經(jīng)終止
			this->m_btnAbort.EnableWindow(TRUE);
			break;
	}
	return 0;
}

LRESULT SpiderWnd::OnAbort(WPARAM wParam, LPARAM lParam)
{
	if(this->m_spider.OnAbort(wParam,lParam))
	{
		//如果已經(jīng)沒(méi)有線程在運(yùn)行啦,則關(guān)閉窗體
		SpiderWnd::pLastWnd	=NULL;
		this->DestroyWindow();
		delete this;
	}
	else
	{
		//如果有線程在運(yùn)行,則終止運(yùn)行的線程
		this->m_btnAbort.EnableWindow(FALSE);
	}
	return 0;
};

LRESULT SpiderWnd::OnAssignNewSect(WPARAM wParam, LPARAM lParam)
{
	return this->m_spider.OnAssignNewSect(wParam,lParam);
};

LRESULT SpiderWnd::OnCreateRecvThread(WPARAM wParam, LPARAM lParam)
{
	return this->m_spider.OnCreateRecvThread(wParam,lParam);
};

LRESULT SpiderWnd::OnShowPrompt(WPARAM wParam,LPARAM lParam)
{
	CString str;
	switch((WORD)wParam)
	{
		case DSPSpider::PROMPT_RECVSLEEP:
			str.Format("Recv:%d ,Sleep:%d.",(BYTE)(wParam>>16),(BYTE)(wParam>>24));
			break;
		case DSPSpider::PROMPT_MORETHAN:
			str.Format("Recv:%d ,Sleep:%d, cann't create more than.",(BYTE)(wParam>>16),(BYTE)(wParam>>24));
			break;
		case DSPSpider::PROMPT_NOIP:
			str.Format("Recv:%d ,Sleep:%d, No IP",(BYTE)(wParam>>16),(BYTE)(wParam>>24));
			break;
		case DSPSpider::PROMPT_CONNECTNEWIP:
			str.Format("connect to IP %s!",(char*)lParam); 
			break;
		case DSPSpider::PROMPT_CANNOTCONNECT:
			str.Format("connect to IP %s Failed!",(char*)lParam); 
			break;
		case DSPSpider::PROMPT_RECVABORT:
			str	="Recv abort.All Thread have been stoped.";
			break;
		case DSPSpider::PROMPT_RECVEND:
			str	="File recv successful.Clear up file.";
	}
	this->m_staPrompt.SetWindowText(str);
	return 0;
};

BOOL SpiderWnd::OnCmdMsg(UINT nID, int nCode, void* pExtra, AFX_CMDHANDLERINFO* pHandlerInfo) 
{
	// TODO: Add your specialized code here and/or call the base class
	if(nCode==0 && nID==IDC_BTNABORT)
	{
		this->OnAbort(0,0);
		return true;
	}
	return CWnd::OnCmdMsg(nID, nCode, pExtra, pHandlerInfo);
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91免费在线看| 国产精品美女久久福利网站| 色噜噜狠狠一区二区三区果冻| 丁香亚洲综合激情啪啪综合| 精品一区二区精品| 国产亚洲精品7777| 色悠久久久久综合欧美99| 成人动漫视频在线| 99精品视频在线免费观看| 成人性生交大片免费看视频在线| 国产麻豆成人精品| 国产精品18久久久久久vr| 国产精品羞羞答答xxdd| 国产一区二区视频在线播放| 国产成人综合在线观看| 岛国av在线一区| 91视频91自| 欧美日韩一区小说| 欧美一区二区三区爱爱| 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | 国产精品盗摄一区二区三区| 国产精品久久久久久久裸模| 亚洲啪啪综合av一区二区三区| 亚洲亚洲精品在线观看| 日韩影院免费视频| 国产精品一级片| aaa欧美色吧激情视频| 欧洲精品中文字幕| 日韩免费在线观看| 国产精品久久久久久妇女6080| 亚洲综合偷拍欧美一区色| 天堂一区二区在线| 粉嫩欧美一区二区三区高清影视| 成年人国产精品| 欧美精品久久久久久久多人混战| 精品国产自在久精品国产| 中文字幕av一区二区三区高| 一区二区三区中文字幕精品精品| 日韩国产精品91| 国产suv精品一区二区6| 欧美午夜一区二区三区| 精品sm捆绑视频| 亚洲欧美日韩小说| 久久狠狠亚洲综合| 一本色道亚洲精品aⅴ| 7777精品伊人久久久大香线蕉完整版 | 激情文学综合网| 91色九色蝌蚪| 日韩欧美一区二区免费| 国产精品萝li| 日韩国产欧美三级| 成人美女在线视频| 欧美日韩国产综合视频在线观看| 久久久99精品免费观看| 一区二区三区日韩精品| 紧缚奴在线一区二区三区| 色综合久久综合网欧美综合网 | 夜夜爽夜夜爽精品视频| 男人的j进女人的j一区| av一二三不卡影片| 日韩精品最新网址| 国产精品私人自拍| www精品美女久久久tv| 一二三四社区欧美黄| 国产一区二区中文字幕| 欧美日韩五月天| 久久女同性恋中文字幕| 午夜在线成人av| 成人av免费网站| 欧美成人a在线| 亚洲综合视频在线观看| 成人免费观看av| 精品理论电影在线| 五月激情六月综合| 色一情一乱一乱一91av| 久久午夜老司机| 蜜臀久久99精品久久久久宅男| 91麻豆国产福利在线观看| 久久色视频免费观看| 天天影视涩香欲综合网| 色香蕉久久蜜桃| 日韩一区欧美小说| 丁香婷婷综合网| 精品国产欧美一区二区| 日韩电影在线观看电影| 欧美性高清videossexo| 亚洲日本在线天堂| 成人av动漫网站| 日本一区二区三区四区在线视频| 精品一区二区免费| 精品卡一卡二卡三卡四在线| 欧美96一区二区免费视频| 欧美精品成人一区二区三区四区| 亚洲综合丁香婷婷六月香| 色综合久久久久久久久| 国产精品久久一卡二卡| 成人精品视频一区| 中文字幕亚洲综合久久菠萝蜜| 国产91丝袜在线观看| 国产日韩影视精品| 国产成人精品三级| 欧美韩国日本一区| 99视频有精品| 亚洲黄色小视频| 在线中文字幕不卡| 亚洲成在线观看| 欧美一级免费大片| 日韩高清不卡一区二区三区| 91精品婷婷国产综合久久竹菊| 免费亚洲电影在线| 久久综合九色综合欧美亚洲| 国产在线播放一区二区三区| 久久精品视频一区二区三区| 丁香另类激情小说| 亚洲视频一区二区在线| 一本大道久久精品懂色aⅴ | 蜜臀久久99精品久久久久宅男| 日韩一区二区免费视频| 国产一区二区在线影院| 中文字幕欧美激情| 97精品久久久午夜一区二区三区| 亚洲人成小说网站色在线| 欧美日精品一区视频| 人人精品人人爱| 国产亚洲一本大道中文在线| 波多野结衣在线一区| 亚洲精品国产一区二区三区四区在线| 欧美影视一区在线| 精品一区中文字幕| 中文字幕亚洲电影| 欧美日韩亚洲不卡| 美国三级日本三级久久99 | 国产中文一区二区三区| 国产日韩欧美制服另类| 91麻豆免费视频| 偷偷要91色婷婷| 国产亚洲综合av| 色婷婷久久99综合精品jk白丝| 麻豆精品一区二区三区| 91老师片黄在线观看| 欧美激情一区二区三区四区 | 91精品婷婷国产综合久久性色| 激情小说欧美图片| 亚洲六月丁香色婷婷综合久久| 777久久久精品| 成人一区二区三区在线观看| 一区二区三区国产精品| 日韩免费在线观看| 91香蕉视频污在线| 久久国产欧美日韩精品| 亚洲欧美另类小说视频| 日韩精品中文字幕在线一区| 99精品在线观看视频| 日本中文字幕一区二区有限公司| 国产精品丝袜一区| 7777精品久久久大香线蕉| 成人精品电影在线观看| 日韩精品一级中文字幕精品视频免费观看 | 欧美一级欧美一级在线播放| 成人午夜电影久久影院| 天天亚洲美女在线视频| 欧美国产1区2区| 欧美美女一区二区| av电影在线观看一区| 蜜臀精品一区二区三区在线观看 | 一区二区三区精品视频| 欧美精品一区二| 欧美视频精品在线观看| 不卡在线视频中文字幕| 麻豆精品视频在线观看免费| 亚洲人成小说网站色在线| 久久久久久久电影| 日韩女优制服丝袜电影| 欧洲精品中文字幕| 成人黄色在线看| 精品午夜久久福利影院| 午夜精品成人在线| 亚洲欧美另类小说| 国产精品欧美一级免费| 精品美女一区二区三区| 欧美日韩黄色一区二区| 91在线观看地址| 国产成人午夜高潮毛片| 美女尤物国产一区| 午夜欧美大尺度福利影院在线看| 亚洲三级久久久| 国产精品视频免费| 国产午夜精品一区二区三区视频| 日韩美女天天操| 日韩小视频在线观看专区| 欧美视频一区二区三区在线观看 | 欧美日韩高清影院| 91传媒视频在线播放| 99热99精品| 99久久久久久| 99热国产精品| 91美女片黄在线| 在线亚洲+欧美+日本专区| 色综合天天综合网天天狠天天| 成人免费视频一区|