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

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

?? mftrafficbutton.cpp

?? 查看網絡流量的Visual C++源代碼
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
/*******************************************

	MFTrafficButton

	Version:	1.0
	Date:		31.10.2001
	Author:		Michael Fatzi
	Mail:		Michael_Fatzi@hotmail.com
	Copyright 1996-1997, Keith Rule

	You may freely use or modify this code provided this
	Copyright is included in all derived versions.
	
	History: 10.2001 Startup

	Handy little button control to display current 
	nettraffic as graph in a button.

********************************************/

// MFTrafficButton.cpp : implementation file
//

#include "stdafx.h"
#include "MFTrafficButton.h"
#include "MemDC.h"
#include <math.h>

#ifndef _WIN32_IE
	#define _WIN32_IE 0x0500
#endif
#include <commctrl.h>
#include <intshcut.h>
#include <wininet.h> 


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


/////////////////////////////////////////////////////////////////////////////
// MFTrafficButton

MFTrafficButton::MFTrafficButton()
{
	brushInitalized = FALSE;
	interfaceCallBack = NULL;
	useAdaptiveScale = FALSE;
	gridxstartpos = 0;
	gridystartpos = 0;
	gridxresolution		=	GRIDXRESOLUTION;
	gridyresolution		=	GRIDYRESOLUTION;
	gridscrollxspeed	=	GRIDSCROLLXSPEED;
	gridscrollyspeed	=	GRIDSCROLLYSPEED; 
	plotgranularity		=	PLOTGRANULATRITY;
	netupdatespeed		=	NETUPDATESPEED;
	gridupdatespeed		=	GRIDUPDATESPEED;
	ToggleStatusText	=	"local maximum";
}

MFTrafficButton::~MFTrafficButton()
{

}


BEGIN_MESSAGE_MAP(MFTrafficButton, CButton)
	//{{AFX_MSG_MAP(MFTrafficButton)
	ON_WM_TIMER()
	ON_WM_RBUTTONDOWN()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// MFTrafficButton message handlers



void MFTrafficButton::PreSubclassWindow() 
{
	// TODO: Add your specialized code here and/or call the base class
	
	CButton::PreSubclassWindow();

	// make sure we are an owner draw button
	ModifyStyle( 0 , BS_OWNERDRAW );

	this->GetWindowRect(&TrafficDrawRectangle);
	this->GetWindowRect(&TrafficDrawUpdateRectangle);
	ScreenToClient(&TrafficDrawUpdateRectangle);
	ScreenToClient(&TrafficDrawRectangle);

	TGSize.cx = TrafficDrawRectangle.right - TrafficDrawRectangle.left;
	TGSize.cy = TrafficDrawRectangle.bottom - TrafficDrawRectangle.top;

	initalized = FALSE;
	MaxTrafficAmount = 0.0;
	SelectedInterface = 0;

//	smallFont.CreateFont(-6,0,0,0,FW_THIN,FALSE, FALSE, FALSE, DEFAULT_CHARSET,
	smallFont.CreateFont(-10,0,0,0,FW_THIN, FALSE, FALSE, FALSE, DEFAULT_CHARSET,OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, VARIABLE_PITCH, "Arial");

	red		= RGB(255,125,125);
	green	= RGB(125,255,125);
	cyan	= RGB(0,255,255);
	darkblue= RGB(0,0,75);
	darkgray= RGB(50,50,50);
	white	= RGB(255,255,255);
	black	= RGB(0,0,0);
	lightgreen	= RGB(156,255,156);
	darkgreen	= RGB(32,64,32);

	greenbrush.CreateSolidBrush(green);
	redbrush.CreateSolidBrush(red);

	GridPen.CreatePen(PS_SOLID ,1 , darkgreen);

	GetWindowRect(&TrafficDrawRectangle);
	ScreenToClient(&TrafficDrawRectangle);
	//	TrafficDrawRectangle.left += 2;
	//	TrafficDrawRectangle.right -= 3;
	//	TrafficDrawRectangle.bottom -= 4;
	
	TGSize.cx = TrafficDrawRectangle.right - TrafficDrawRectangle.left;
	TGSize.cy = TrafficDrawRectangle.bottom - TrafficDrawRectangle.top;
	
	
	TrafficEntries = TGSize.cx / plotgranularity;
	TrafficStats = new TRAFFICENTRY[TrafficEntries+1];
	
	for(DWORD x=0; x<TrafficEntries; x++)
	{
		TrafficStats[x].connected = TRUE;//FALSE;
		TrafficStats[x].value	= 0.0;//(float)x * (float)TrafficEntries*0.05;//;10.0 + 10.0*(sin(5.0*(float)x*3.14/180.0));
	}
	
	MaxTrafficAmount = 0.0;
	SelectedInterface = 0;

	CRgn rectRgn, ellRgn, finalRgn;
	rectRgn.CreateRectRgn(0,0,TGSize.cx, TGSize.cy);
	ShapeWNDRegion.CreateRectRgn(0,0,TGSize.cx, TGSize.cy);;
	ShapeDCRegion.CreateRectRgn(0,0,TGSize.cx, TGSize.cy);;

	int x1,x2,y1,y2,xe,ye,xs,ys;
	int xof, yof;
	int r;
	xs = TGSize.cx;
	ys = TGSize.cy;
	x1 = 0;
	y1 = 0;
	x2 = xs;
	y2 = ys;
	xe = 5;//Radius of edge
	ye = 5;//Radius of edge
	xof = (int)( (float)xs*0.0);
	yof = (int)( (float)ys*0.0);
	r = ellRgn.CreateRoundRectRgn(x1,y1,x2,y2,xe,ye);
	r = ellRgn.OffsetRgn(-xof, -yof);
	r = ShapeWNDRegion.CombineRgn(&rectRgn, &ellRgn,RGN_AND );
	r = ShapeDCRegion.CombineRgn(&rectRgn, &ellRgn,RGN_AND );

	this->SetWindowRgn((HRGN)ShapeWNDRegion, TRUE);
	initalized = TRUE;

	SetTimer(GRIDTIMER,	gridupdatespeed,	0);
	SetTimer(NETTIMER,	netupdatespeed,		0);

}


void MFTrafficButton::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct) 
{
	// TODO: Add your message handler code here and/or call default
//	CButton::OnDrawItem(nIDCtl, lpDrawItemStruct);

	ASSERT( lpDrawItemStruct != NULL );

	CDC * pDC   = CDC::FromHandle( lpDrawItemStruct -> hDC );
	int erg = pDC->SelectClipRgn(&ShapeDCRegion);

	CRect rect = lpDrawItemStruct -> rcItem;
	UINT state = lpDrawItemStruct -> itemState;
	UINT nStyle = GetStyle( );

	int nSavedDC = pDC -> SaveDC( );

	// Create the brush for the color bar
	if(brushInitalized == FALSE)
	{
		CBitmap bmp;
		CMemDC *memDC = new CMemDC(pDC);
		
		RECT clipRect;
		memDC->GetClipBox(&clipRect);

		if(clipRect.right - clipRect.left > 1)
		{
			bmp.CreateCompatibleBitmap(memDC,plotgranularity, TGSize.cy);
			CBitmap *pOld = memDC->SelectObject(&bmp);
			
			CSize bmps = bmp.GetBitmapDimension();		
			
			// Need for scaling the color to the size of button
			double factor = 255.0 / (float)TGSize.cy;
			BYTE r,g,b;
			for(int x = 0; x<TGSize.cy; x++)
			{
				g = (BYTE)(255-factor*x);
				r = (BYTE)(factor*x);
				b = (BYTE)64;
				memDC->SetPixelV(0,x,RGB(r,g,b));
				memDC->SetPixelV(1,x,RGB(r,g,b));
			}
			memDC->SelectObject(pOld);

			colorbrush.CreatePatternBrush(&bmp);	
			brushInitalized = TRUE;
		}
	}
	if(initalized == TRUE)
	{
		COLORREF backcolor = GetSysColor(COLOR_BTNFACE);
		
		CBrush brush;
		CMemDC *memDC = new CMemDC(pDC);
		
		RECT clipRect;
		memDC->GetClipBox(&clipRect);
		memDC->FillSolidRect(&clipRect,backcolor);
		
		CFont *oldFont;
		int xp, yp, xx, yy;
		orgBrushOrigin = memDC->GetBrushOrg();
		
		oldFont = memDC->SelectObject(&smallFont);
		
		double scale = (double)TGSize.cy / (double)MaxTrafficAmount;
		
		yp = TrafficDrawRectangle.bottom;
		xp = TrafficDrawRectangle.left;
		
		RECT fillrect;
		
		CString tmp;
		
		// Fill the background
		back = memDC->GetBkColor();
		brush.CreateSolidBrush(darkblue);//back);
		memDC->FillRect(&TrafficDrawRectangle, &brush);

		// draw the grid
		int xgridlines, ygridlines;
		
		xgridlines = TGSize.cx / gridxresolution;
		ygridlines = TGSize.cy / gridyresolution;
		CPen* oldPen = memDC->SelectObject(&GridPen);
		// Create the vertical lines
		for (int x=0; x<= xgridlines; x++)
		{
			memDC->MoveTo(x*gridxresolution + gridxstartpos, 0			);
			memDC->LineTo(x*gridxresolution + gridxstartpos, TGSize.cy	);
		}
		// And the horizontal lines
		for (int y=0; y<= ygridlines; y++)
		{
			memDC->MoveTo(0			, gridystartpos + TGSize.cy - y*gridyresolution - 2);
			memDC->LineTo(TGSize.cx	, gridystartpos + TGSize.cy - y*gridyresolution - 2);
		}

		gridxstartpos += gridscrollxspeed;
		gridystartpos += gridscrollyspeed;
		if(gridxstartpos < 0				) gridxstartpos = gridxresolution;
		if(gridxstartpos > gridxresolution	) gridxstartpos = 0;
		if(gridystartpos < 0				) gridystartpos = gridyresolution;
		if(gridystartpos > gridyresolution	) gridystartpos = 0;


		memDC->SelectObject(oldPen );

		for(DWORD cnt=0; cnt<TrafficEntries; cnt++)
		{
			xx = xp + cnt*plotgranularity;
			double traffic = (double)TrafficStats[cnt].value; 
			yy = yp - (int)((double)TrafficStats[cnt].value * scale);
			
			// Just paint if we are connected...
			if(TrafficStats[cnt].connected == TRUE)
			{
				fillrect.bottom = yp;
				fillrect.top	= yy;
				fillrect.left	= xx;
				fillrect.right	= xx+plotgranularity;
				memDC->SetBrushOrg(xx,yp);
				if(TrafficStats[cnt].value > 0.0) 
				{
					memDC->FillRect(&fillrect, &colorbrush);
					memDC->SetPixelV(xx, yy, cyan);
				}
			}
		}
		

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美性色黄大片| 精品在线观看视频| 亚洲美女少妇撒尿| 亚洲精品中文字幕乱码三区| 国产精品你懂的| 亚洲视频一区二区免费在线观看 | 中文字幕制服丝袜成人av| 欧美一区二区视频网站| 精品欧美黑人一区二区三区| 精品福利在线导航| 国产精品麻豆久久久| 亚洲欧美另类综合偷拍| 亚洲国产乱码最新视频 | 色婷婷av一区二区| 欧美美女喷水视频| 精品久久久久久综合日本欧美| 精品女同一区二区| 亚洲欧美二区三区| 亚洲精品免费视频| 一个色在线综合| 日韩电影在线免费看| 韩国女主播成人在线观看| eeuss鲁一区二区三区| 欧美一二三四在线| 亚洲人成在线观看一区二区| 免费xxxx性欧美18vr| 91麻豆精品视频| 国产女人18毛片水真多成人如厕 | 欧美成人激情免费网| 一色屋精品亚洲香蕉网站| 精品在线观看视频| 91精品国产综合久久小美女| 亚洲日本在线a| 成人国产视频在线观看| 日韩欧美国产精品一区| 石原莉奈一区二区三区在线观看| 91亚洲精品乱码久久久久久蜜桃| 国产成人av一区二区三区在线 | 中文字幕在线观看不卡视频| 免费在线观看一区| 91精品91久久久中77777| 国产精品水嫩水嫩| 国产综合色在线| 丝袜诱惑亚洲看片| 在线免费观看日本一区| 亚洲精品高清视频在线观看| 99久久久无码国产精品| 国产欧美久久久精品影院 | 在线精品视频免费播放| 亚洲欧美一区二区三区国产精品 | 久久久99久久精品欧美| 国内精品免费**视频| 日本一区二区三区dvd视频在线| 国产自产高清不卡| 国产三级久久久| 99久精品国产| 视频在线在亚洲| 精品国产91久久久久久久妲己| 国产精品69毛片高清亚洲| 中文字幕av在线一区二区三区| 成人免费视频一区| 午夜精品一区二区三区三上悠亚 | 日本中文字幕一区二区视频| 日韩一区二区电影网| 丁香婷婷综合五月| 亚洲国产一区二区三区青草影视| 精品奇米国产一区二区三区| 91香蕉视频mp4| 久久国产福利国产秒拍| 亚洲另类中文字| 日本美女视频一区二区| 亚洲综合丁香婷婷六月香| 国产成人综合视频| 国产精品国产自产拍高清av王其 | 久久午夜羞羞影院免费观看| 成人亚洲一区二区一| 性欧美大战久久久久久久久| 国产欧美日韩精品在线| 日韩一区二区三区在线| 欧美体内she精视频| 色吊一区二区三区| 色综合中文字幕国产 | 亚洲主播在线观看| 国产精品情趣视频| 亚洲国产电影在线观看| 久久综合久久综合久久| 精品乱码亚洲一区二区不卡| 欧美一区二区三区四区视频| 精品视频在线视频| 欧美天堂一区二区三区| 在线观看视频91| 日精品一区二区| 免费观看在线综合| 另类小说综合欧美亚洲| 国模套图日韩精品一区二区| 国产大陆a不卡| 97久久超碰精品国产| 在线视频国内自拍亚洲视频| 欧美日韩亚洲不卡| 精品国产一区二区三区av性色| 久久综合久色欧美综合狠狠| 国产精品免费av| 亚洲综合色视频| 久久成人免费网站| 不卡在线观看av| 欧美亚日韩国产aⅴ精品中极品| 欧美日韩高清在线| 亚洲高清久久久| 日韩电影在线免费看| 免费高清不卡av| 色哟哟亚洲精品| 精品毛片乱码1区2区3区| 日韩一区欧美小说| 老司机精品视频一区二区三区| 99免费精品视频| 日韩亚洲欧美在线观看| 日韩美女精品在线| 经典三级一区二区| 欧美日高清视频| 亚洲激情在线激情| 美女国产一区二区三区| 91精彩视频在线| 欧美韩国日本不卡| 日韩av电影免费观看高清完整版 | 欧美精品一区二区三区久久久| 亚洲一区二区三区中文字幕在线| 国内久久精品视频| 久久亚洲综合色| 日本大胆欧美人术艺术动态| 欧美在线看片a免费观看| 亚洲国产激情av| 成人免费高清视频在线观看| 精品国产乱码久久久久久夜甘婷婷| 婷婷成人激情在线网| 欧美日韩激情一区二区三区| 日韩在线卡一卡二| 777欧美精品| 久久精品噜噜噜成人av农村| 日韩一区二区三区四区| 久久不见久久见免费视频1| 日韩精品影音先锋| 亚洲一区在线电影| 91久久香蕉国产日韩欧美9色| 玉米视频成人免费看| 五月婷婷激情综合| 欧美电影免费观看完整版| 国模无码大尺度一区二区三区| 欧美激情一区在线| 色婷婷av一区二区| 亚洲午夜激情av| 精品国产一二三区| 成人avav影音| 日本中文一区二区三区| 国产日韩三级在线| 欧美日本一区二区三区四区 | 91精品国产91热久久久做人人| 乱一区二区av| 亚洲免费av高清| 久久精品视频免费观看| 欧美无砖砖区免费| 久久国产精品露脸对白| 亚洲综合清纯丝袜自拍| 精品免费视频一区二区| 欧洲人成人精品| 成人国产电影网| 国产高清不卡一区| 麻豆精品一区二区综合av| 亚洲精品水蜜桃| 亚洲精品日产精品乱码不卡| 26uuu色噜噜精品一区| 日韩一区和二区| 欧美日韩国产免费一区二区| 99国产精品久| 色悠久久久久综合欧美99| 国产精品1区2区| 国产成人日日夜夜| 国产精品1024| 成人av在线资源网站| 99精品国产热久久91蜜凸| 成人av在线播放网址| 91一区二区三区在线观看| 成人免费黄色大片| 99久久免费精品高清特色大片| 成人精品电影在线观看| 3d成人动漫网站| 5月丁香婷婷综合| 欧美一级免费大片| 26uuu国产在线精品一区二区| 日韩一级大片在线| 中文字幕精品一区二区三区精品 | 精品一区二区三区免费| 老司机精品视频在线| 成人av免费在线播放| 欧美日韩国产大片| 欧美高清在线一区二区| 亚洲柠檬福利资源导航| 蜜臀av性久久久久蜜臀aⅴ流畅 | 中文字幕的久久| 亚洲自拍偷拍图区| 国产在线播放一区|