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

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

?? afdialpanel.cpp

?? RAS高級編程是一個RAS撥號程序高級開發
?? CPP
字號:
///////////////////////////////////////////////////////////////////////
// If this program works, it was written by Alexander Fedorov.
// If not, I don't know who wrote it.
// mailto:lamer2000@hotmail.com
// Home Page: http://members.xoom.com/lamer2000/
// This file is part of Alexf Dialer.
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2 of the License, or
// (at your option) any later version.
///////////////////////////////////////////////////////////////////////

// AFDialPanel.cpp : implementation file
//

#include "stdafx.h"
#include "AFDialPanel.h"
#include "afd.h"

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


class CAfdApp;
extern CAfdApp theApp;

/////////////////////////////////////////////////////////////////////////////
// CAFDialPanel

CAFDialPanel::CAFDialPanel()
{
	Recv = new DWORD[STACKSIZ * sizeof(DWORD)];
	if (!Recv) return;
	Send = new DWORD[STACKSIZ * sizeof(DWORD)];
	if (!Send)
	{
		delete [] Recv;
		return;
	}
	for (int i = 0; i < STACKSIZ; i++)
	{
		Recv[i] = 0;
		Send[i] = 0;
	}
	TextLines = 7;
	LeftWidth = 50;
	text[0] = _T("接收");
	text[2] = _T("速度 ");
	text[4] = _T("Kb/sec");
	text[6] = _T("發送");
}

CAFDialPanel::~CAFDialPanel()
{
	if (Recv) delete [] Recv;
	if (Send) delete [] Send;
}


BEGIN_MESSAGE_MAP(CAFDialPanel, CStatic)
	//{{AFX_MSG_MAP(CAFDialPanel)
	ON_WM_PAINT()
	ON_WM_TIMER()
	ON_WM_DESTROY()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CAFDialPanel message handlers

//動態顯示流量數據
void CAFDialPanel::OnPaint() 
{
	if (!Recv) return;
	if (!Send) return;
	CPaintDC dc(this); // device context for painting
	CRect cr;
	GetClientRect(&cr);
	CRect cr1(cr);
// fill text
	text[1] = L2S(Recv[lStack]);
	text[3] = D2S_2((double)MaxSpeed / 1000.0);
	text[5] = L2S(Send[lStack]);
// text
	dc.SetBkMode(TRANSPARENT);
	dc.SetTextColor(GetSysColor(COLOR_BTNTEXT));
	int hh = cr.Height() / TextLines;
	cr1.right = cr1.left + LeftWidth;
	dc.FillRect(& cr1, & CBrush(GetSysColor(COLOR_BTNFACE)));
	cr1.bottom = cr1.top + hh;
	CFont* pOldFont = dc.SelectObject(GetFont());
	for (int i = 0; i < TextLines; i++)
	{
		dc.DrawText(text[i], (LPRECT)&cr1,
		DT_WORDBREAK | DT_CENTER | DT_VCENTER);
		cr1.OffsetRect(0, hh);
	}
	dc.SelectObject(pOldFont);
// axis
	cr1 = CRect(cr);
	cr1.left = cr.left + LeftWidth;
	cr1.right = cr1.left + 1;
	dc.FillRect(& cr1, & CBrush(GetSysColor(COLOR_APPWORKSPACE)));
	cr1.right = cr.right;
	cr1.top = cr.Height() / 2;
	cr1.bottom = cr1.top + 1;
	dc.FillRect(& cr1, & CBrush(GetSysColor(COLOR_APPWORKSPACE)));

	if (0 == MaxSpeed) return;
// graph
	i = lStack;
	int h = cr.Height() / 2 - 1;
	cr1.left = cr.left + LeftWidth + 1;
	cr1.right = cr1.left + 2;
//	int ccc = 0;
	while (TRUE)
	{
		int h1 = 10 * h * Recv[i] / MaxSpeed;
		if (h1 < h)
		{
			cr1.top = cr.top;
			cr1.bottom = cr.top + h - h1;
			// clear
			dc.FillRect(& cr1, & CBrush(GetSysColor(COLOR_BTNFACE)));
		}
		if (h1 > h)
		{
			h1 = h - 2;
			cr1.top = cr.top;
			cr1.bottom = cr.top + 2;
			// chache hit
			dc.FillRect(& cr1, & CBrush(RGB(255, 0, 0)));
		}
		if (0 == h1 && 0 != Recv[i]) h1 = 1;
		cr1.bottom = cr.Height() / 2 - 1;
		cr1.top = cr1.bottom - h1;
		dc.FillRect(& cr1, & CBrush(GetSysColor(COLOR_BTNHIGHLIGHT)));// ccc)));
//		ccc++;
		h1 = 10 * h * Send[i] / MaxSpeed;
		if (h1 < h)
		{
			cr1.bottom = cr.bottom;
			cr1.top = cr.bottom - h + h1;
			// clear
			dc.FillRect(& cr1, & CBrush(GetSysColor(COLOR_BTNFACE)));
		}
		if (h1 > h)
		{
			h1 = h - 2;
			cr1.bottom = cr.bottom;
			cr1.top = cr.top;
			cr1.top = cr.bottom - 2;
			// chache hit
			dc.FillRect(& cr1, & CBrush(RGB(255, 0, 0)));
		}
		if (0 == h1 && 0 != Send[i]) h1 = 1;
		cr1.top = cr.Height() / 2 + 1;
		cr1.bottom = cr1.top + h1;
		dc.FillRect(& cr1, & CBrush(GetSysColor(COLOR_HIGHLIGHT)));
		cr1.OffsetRect(3, 0);
		if (0 == i) i = STACKSIZ;
		i--;
		if (cr1.left > cr.right - 2) break;
	}
}

void CAFDialPanel::OnTimer(UINT nIDEvent) 
{
	if (!Recv) return;
	if (!Send) return;
	lStack++;
	if (lStack >= STACKSIZ) lStack = 0;
	MaxSpeed = theApp.pPerf[PERF_ConnectSpeed]->GetData();
	DWORD dRecv = theApp.pPerf[PERF_BytesRecvd]->GetData();
	DWORD dSend = theApp.pPerf[PERF_BytesXmit]->GetData();
	Recv[lStack] = dRecv - TotalRecv;
	Send[lStack] = dSend - TotalSend;
	TotalRecv = dRecv;
	TotalSend = dSend;
	RedrawWindow();
	CStatic::OnTimer(nIDEvent);
}

void CAFDialPanel::PreSubclassWindow() 
{
	TotalRecv = 0;
	TotalSend = 0;
	lStack = 0;
	MaxSpeed = 0;
	pPerf[PERF_ConnectSpeed] = new CAlexfPerf(ALEXF_PERF_DIALUP_CONNECTSPEED);
	pPerf[PERF_BytesRecvd]   = new CAlexfPerf(ALEXF_PERF_DIALUP_BYTESRECVD);
	pPerf[PERF_BytesXmit]    = new CAlexfPerf(ALEXF_PERF_DIALUP_BYTESXMIT);
	for (int i = 0; i < PERF_ARRAY; i++) if (NULL == pPerf[i]) VERIFY(0);
	TotalRecv = theApp.pPerf[PERF_BytesRecvd]->GetData();
	TotalSend = theApp.pPerf[PERF_BytesXmit]->GetData();
	uTimer = SetTimer(1, 1000, NULL);
	CStatic::PreSubclassWindow();
}

void CAFDialPanel::OnDestroy() 
{
	for (int i = 0; i < PERF_ARRAY; i++) delete pPerf[i];
	KillTimer(uTimer);
	CStatic::OnDestroy();
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
九一久久久久久| 久久综合丝袜日本网| 色综合久久久久久久| 成人性视频免费网站| 国产成人a级片| 成人精品一区二区三区四区 | 国产一区二区精品久久91| 美女在线视频一区| 久久国内精品视频| 国产一区二区调教| 成人美女视频在线看| 91麻豆123| 欧美日韩中字一区| 91精品国产综合久久国产大片| 欧日韩精品视频| 91精品欧美久久久久久动漫| 日韩亚洲欧美在线| 久久久久国色av免费看影院| 中文字幕乱码日本亚洲一区二区| 中文字幕av一区 二区| 亚洲视频在线一区观看| 亚洲一区二区在线免费观看视频| 午夜视频在线观看一区二区三区| 免费久久精品视频| 国产精品一区三区| 色系网站成人免费| 日韩无一区二区| 国产欧美一区二区精品性色超碰 | 国产剧情一区二区三区| 丁香一区二区三区| 欧美最猛黑人xxxxx猛交| 欧美一区二区三区四区五区| 久久新电视剧免费观看| 亚洲人成亚洲人成在线观看图片| 性久久久久久久| 国产一区二区在线观看免费| 99精品视频在线免费观看| 色视频成人在线观看免| 欧美一卡二卡三卡四卡| 欧美国产日韩精品免费观看| 亚洲高清免费一级二级三级| 久久99国产精品免费网站| 91在线视频免费观看| 欧美一区二区不卡视频| 中文字幕一区二区三区视频| 石原莉奈一区二区三区在线观看| 国产精品中文字幕一区二区三区| 色天天综合久久久久综合片| 精品美女一区二区| 一区二区三区欧美激情| 蜜桃av一区二区三区| 99精品欧美一区二区三区小说| 91精品国产综合久久国产大片| 国产精品乱人伦| 免费高清不卡av| 91国偷自产一区二区使用方法| 欧美成人激情免费网| 一区二区三区.www| 国产高清不卡二三区| 欧美丰满一区二区免费视频| 中文字幕中文在线不卡住| 奇米亚洲午夜久久精品| 色婷婷久久久综合中文字幕| 久久中文娱乐网| 日韩成人一区二区三区在线观看| 波多野结衣欧美| 久久婷婷国产综合国色天香| 亚洲不卡在线观看| 91丨九色丨尤物| 久久久久久久久久电影| 免费观看在线色综合| 欧洲一区二区av| 专区另类欧美日韩| 高清av一区二区| 欧美v日韩v国产v| 日韩电影一区二区三区| 欧美亚洲综合网| 亚洲色图一区二区三区| 国产成人aaa| 国产亚洲一本大道中文在线| 蜜臀久久久久久久| 欧美精品一二三四| 亚洲一区在线电影| 色婷婷久久久亚洲一区二区三区 | 国产福利视频一区二区三区| 欧美一区日本一区韩国一区| 亚洲一区二区四区蜜桃| 97se亚洲国产综合在线| 国产精品久久久久永久免费观看 | 成人午夜免费av| 久久伊人中文字幕| 狠狠v欧美v日韩v亚洲ⅴ| 欧美一区二区三区不卡| 天使萌一区二区三区免费观看| 91浏览器入口在线观看| 亚洲欧洲日产国产综合网| 成人一区二区三区视频| 国产精品人成在线观看免费| 国产成人免费在线视频| 国产视频一区不卡| 国产精品自拍三区| 欧美高清在线视频| 成人av在线影院| 中文字幕人成不卡一区| 99久久精品免费看国产| 亚洲欧美日韩国产中文在线| 色综合天天做天天爱| 亚洲女性喷水在线观看一区| 在线亚洲免费视频| 亚洲一区中文日韩| 欧美日韩国产一区二区三区地区| 午夜精品久久久久久久蜜桃app| 欧美精品tushy高清| 青青草原综合久久大伊人精品优势| 欧美一区二区日韩| 国产自产视频一区二区三区| 欧美激情一二三区| av一二三不卡影片| 亚洲福利视频三区| 欧美一区二区三级| 国产精品亚洲午夜一区二区三区 | 日韩国产精品久久久| 91精品国产91久久久久久最新毛片| 日本网站在线观看一区二区三区| 精品久久一区二区| 成人美女视频在线观看18| 亚洲精品写真福利| 69精品人人人人| 国产麻豆欧美日韩一区| 最近日韩中文字幕| 欧美精品高清视频| 国产成+人+日韩+欧美+亚洲| 亚洲人快播电影网| 日韩亚洲欧美成人一区| 国产在线不卡一区| 亚洲欧美日韩在线| 69精品人人人人| 成人小视频免费观看| 亚洲资源中文字幕| 欧美mv日韩mv国产网站app| 国产成人综合在线观看| 一区二区三区欧美日| 精品理论电影在线| 99久久99久久综合| 青青青伊人色综合久久| 亚洲国产成人一区二区三区| 欧美日韩精品福利| 国产精品一卡二| 天天综合天天做天天综合| 国产日韩欧美在线一区| 欧美色精品天天在线观看视频| 国精产品一区一区三区mba视频 | 91在线你懂得| 青青草国产成人99久久| 67194成人在线观看| 亚洲成人午夜电影| 久久综合九色综合97_久久久| 91丝袜呻吟高潮美腿白嫩在线观看| 亚洲成人精品一区| 久久久久国产精品人| 一本大道久久a久久精二百| 久久精品国产99国产精品| 亚洲欧美日韩国产一区二区三区 | av在线综合网| 日韩三级伦理片妻子的秘密按摩| 国产精品久久国产精麻豆99网站| 视频在线观看一区二区三区| eeuss鲁片一区二区三区在线观看| 日韩一级高清毛片| 一区二区三区色| 国产风韵犹存在线视精品| 91精品国产一区二区三区蜜臀| 国产精品美女久久福利网站| 美国一区二区三区在线播放| 欧亚洲嫩模精品一区三区| 国产精品久久久久久户外露出| 国产自产视频一区二区三区| 欧美精品日韩一区| 玉足女爽爽91| 99久久久久久99| 国产精品美女久久久久久久久| 美腿丝袜亚洲一区| 欧美一级xxx| 丝袜诱惑亚洲看片| 欧美色精品天天在线观看视频| 亚洲视频在线一区二区| 99精品久久久久久| 中文字幕一区二区5566日韩| 国产毛片精品视频| 久久香蕉国产线看观看99| 久久99精品久久久久久国产越南| 69堂国产成人免费视频| 午夜影视日本亚洲欧洲精品| 欧洲一区二区三区免费视频| 亚洲在线观看免费| 欧美日本一区二区三区四区| 性久久久久久久久| 日韩一区二区视频| 久久精品国内一区二区三区 | 91国产免费看|