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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? spiderwnd.cpp

?? 實現了精簡的FFT語音壓縮 采取了一種新的算法有一定的參考價值
?? CPP
字號:
// 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			0xFFF0					//放棄按鈕的ID
#define	 MSG_ASSIGNNEWSECT		12345
#define  MSG_CREATERECVTHREAD	12346

enum
{
	//窗體的字模的高度、窗體的高度和按鈕的寬度高度
	WND_FONT_HEIGHT		=11,
	WND_BTN_WIDTH		=12,
	WND_HEIGHT			=WND_FONT_HEIGHT*4+2,
};

SpiderWnd::SpiderWnd()
{
	this->m_spider.m_pstaPrompt	=&this->m_staPrompt;
}

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(DSPSpider::MSG_GETFILENAME,OnGetFilename)
	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)
{
	//創建窗體本身
	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;
	
	//名字、進度條與窗體的寬度相同
	rectName	=rectProg	=rect;

	//計算名字的位置
	rectName.bottom		=WND_FONT_HEIGHT;

	//計算進度條的位置
	rectProg.top		=rectName.bottom;
	rectProg.bottom		=rectProg.top+8;

	//計算下載字節數提示的位置
	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;

	//計算提示信息框的位置,放棄按鈕在提示信息框的右邊
	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)
	{
		//如果按鈕沒有被創建
		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)
{
	//設置文件的名字和大小
	DSPSpider::_FILEDETAIL* lphfd	=(DSPSpider::_FILEDETAIL*)wParam;

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

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

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

	//初始化進度顯示
	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:
			{
				//已全部下載完
				::AfxMessageBox("文件接收完成!");
			}
		case 2:
			//所有的線程都已經終止
			this->m_btnAbort.EnableWindow(true);
			break;
	}
	return 0;
}

LRESULT SpiderWnd::OnAbort(WPARAM wParam, LPARAM lParam)
{
	if(this->m_spider.OnAbort(wParam,lParam))
	{
		//如果已經沒有線程在運行啦,則關閉窗體
		this->DestroyWindow();
		delete this;
	}
	else
	{
		//如果有線程在運行,則終止運行的線程
		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::OnGetFilename(WPARAM wParam, LPARAM lParam)
{
	DSPSpider::_FILEDETAIL& fd	=*(DSPSpider::_FILEDETAIL*)wParam;
	fd.strPathname	="允許被下載的文件名,包含路徑";
	fd.dwFilesize	=DSP::GetFileSize(fd.strPathname);
	return 0;
};

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_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;
};

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99re66热这里只有精品3直播| 欧美猛男超大videosgay| 成人av在线网站| 欧美高清激情brazzers| 国产亚洲欧美日韩俺去了| 亚洲国产毛片aaaaa无费看| 国产一区二区影院| 欧美日韩在线三区| 国产精品看片你懂得| 麻豆91精品视频| 欧美日韩视频专区在线播放| 国产精品免费视频观看| 精品在线免费观看| 欧美日韩国产片| 一区二区三区国产| av不卡在线播放| 国产欧美日韩麻豆91| 精品一区二区三区香蕉蜜桃| 欧美日本乱大交xxxxx| 亚洲欧美一区二区久久| 丁香啪啪综合成人亚洲小说| 久久一区二区视频| 国内一区二区视频| 久久综合色综合88| 久久国产乱子精品免费女| 欧美日韩国产精品成人| 亚洲综合在线免费观看| 成人aa视频在线观看| 日本一区二区免费在线观看视频| 美腿丝袜亚洲色图| 日韩视频一区在线观看| 美女视频黄频大全不卡视频在线播放| 欧美人体做爰大胆视频| 午夜影院久久久| 欧美日韩电影在线播放| 日韩精品国产欧美| 91精品国产综合久久久久久久久久| 亚洲成av人片一区二区梦乃| 欧美日韩精品一区二区在线播放| 亚洲gay无套男同| 7777精品伊人久久久大香线蕉的| 午夜精品久久久久久久99樱桃| 欧美日本在线播放| 蜜臀av一区二区| 久久久噜噜噜久久中文字幕色伊伊| 国产一区二三区好的| 中文字幕高清一区| 91久久人澡人人添人人爽欧美| 亚洲一二三四久久| 日韩欧美在线1卡| 国产精品一区二区久激情瑜伽| 国产精品视频yy9299一区| 99久久精品一区二区| 亚洲一区二区欧美激情| 日韩精品一区国产麻豆| 国产激情视频一区二区在线观看| 国产精品美女久久久久久久久 | 久久精品人人做人人爽97| 欧美精品xxxxbbbb| 日韩国产精品久久久久久亚洲| 欧美va亚洲va国产综合| 大陆成人av片| 亚洲成人动漫精品| 久久午夜老司机| 色域天天综合网| 麻豆视频一区二区| 亚洲日穴在线视频| 日韩精品一区二区在线| 99麻豆久久久国产精品免费| 日韩精品亚洲一区| 国产精品色在线观看| 91精品欧美久久久久久动漫| 国产高清精品在线| 天天影视网天天综合色在线播放| 久久只精品国产| 欧美日韩久久一区| 99视频热这里只有精品免费| 日产精品久久久久久久性色| 中文字幕在线免费不卡| 欧美一二区视频| 日本高清不卡在线观看| 国产一区二区成人久久免费影院| 亚洲一区二区三区自拍| 国产日韩精品一区二区三区在线| 欧美猛男超大videosgay| 99在线视频精品| 久久99精品久久只有精品| 一区二区三区蜜桃| 国产精品网站在线| 精品国产麻豆免费人成网站| 91麻豆精品在线观看| 国产suv精品一区二区三区| 日韩精品久久理论片| 亚洲一区在线视频| 国产精品成人网| 欧美国产日韩a欧美在线观看| 日韩西西人体444www| 欧美日韩亚洲国产综合| 91看片淫黄大片一级在线观看| 国产一区高清在线| 国内一区二区在线| 看电影不卡的网站| 免费不卡在线观看| 首页亚洲欧美制服丝腿| 亚洲一区二区在线免费看| 一区二区中文视频| 亚洲国产精品传媒在线观看| 久久蜜桃一区二区| 26uuu亚洲综合色| 久久夜色精品国产噜噜av | 亚洲午夜免费视频| 一区二区三区在线免费播放| 亚洲色大成网站www久久九九| 国产三级三级三级精品8ⅰ区| 精品国偷自产国产一区| 日韩欧美国产1| 欧美va亚洲va在线观看蝴蝶网| 日韩精品一区二区三区视频在线观看 | 一区二区久久久| 亚洲蜜桃精久久久久久久| 亚洲美女在线国产| 亚洲美女偷拍久久| 舔着乳尖日韩一区| 久久精品国产一区二区| 国产真实精品久久二三区| 国产麻豆视频一区二区| 国产大陆精品国产| aaa欧美大片| 91精彩视频在线观看| 欧美日韩高清在线| 精品日本一线二线三线不卡| 久久精品视频网| 国产精品福利一区二区三区| 亚洲啪啪综合av一区二区三区| 艳妇臀荡乳欲伦亚洲一区| 日韩高清在线电影| 国产乱色国产精品免费视频| 国产成人精品免费| 91视视频在线观看入口直接观看www| 在线观看视频一区二区欧美日韩| 欧美日韩中文精品| 亚洲精品在线三区| 亚洲精品一二三四区| 午夜精品爽啪视频| 国产米奇在线777精品观看| 9久草视频在线视频精品| 欧美日韩三级一区二区| 久久久久久免费| 亚洲黄一区二区三区| 九九精品视频在线看| 91啪亚洲精品| 欧美精品一区二区三区久久久 | 日韩欧美一区在线观看| 国产精品理伦片| 日日嗨av一区二区三区四区| 国产一区二区三区免费| 色94色欧美sute亚洲13| 精品国产1区2区3区| 亚洲一区二区中文在线| 国产精品一区在线观看乱码| 色婷婷一区二区| 久久久久久免费毛片精品| 亚洲成在人线在线播放| 成人性色生活片| 91精品国产黑色紧身裤美女| 亚洲欧美自拍偷拍色图| 久久精品国产一区二区三区免费看| 99久久精品国产网站| 日韩精品专区在线影院观看| 一区二区三区四区不卡在线| 国产乱子伦视频一区二区三区| 欧美精品乱码久久久久久按摩| 国产精品美女www爽爽爽| 麻豆91精品视频| 欧美精品黑人性xxxx| 亚洲卡通动漫在线| 成人一区二区视频| 26uuu国产电影一区二区| 日韩av不卡在线观看| 在线看不卡av| 综合激情成人伊人| 处破女av一区二区| 久久综合色播五月| 日本欧美大码aⅴ在线播放| 欧美亚洲一区三区| 亚洲日本青草视频在线怡红院 | 日本韩国欧美国产| 成人免费视频在线观看| 国产成人精品aa毛片| 精品国一区二区三区| 奇米影视在线99精品| 欧美一区二区三区思思人| 亚洲国产欧美一区二区三区丁香婷| 99久久国产综合精品色伊| 国产欧美中文在线| 成人精品免费视频| 国产精品麻豆欧美日韩ww| 成人精品视频一区二区三区 | 国产精品99久久久久| 久久久青草青青国产亚洲免观|