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

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

?? mftrafficbutton.cpp

?? 查看網(wǎng)絡(luò)流量的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);
				}
			}
		}
		

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲bt欧美bt精品| 亚洲一区二区三区精品在线| 色8久久人人97超碰香蕉987| 美女网站视频久久| 亚洲欧美激情插| 久久人人超碰精品| 制服.丝袜.亚洲.中文.综合| www.视频一区| 韩日av一区二区| 性欧美疯狂xxxxbbbb| 中文字幕一区二区三区不卡| 日韩色视频在线观看| 在线一区二区三区四区五区| 国产成人精品一区二| 另类专区欧美蜜桃臀第一页| 午夜精品久久久久久久久久久 | 在线免费一区三区| 国产精品综合一区二区三区| 蜜臀91精品一区二区三区| 亚洲国产成人av网| 自拍偷拍亚洲激情| 国产色综合一区| 欧美大片一区二区| 欧美一区二区三区婷婷月色| 欧美主播一区二区三区美女| 91最新地址在线播放| 国产精品一区二区久久不卡| 蜜桃视频一区二区三区| 日韩av电影天堂| 亚洲国产精品久久人人爱蜜臀| 国产精品天干天干在观线| 久久综合九色综合欧美亚洲| 日韩欧美国产一区二区三区 | caoporn国产精品| 国产高清在线精品| 国产黑丝在线一区二区三区| 国产精一区二区三区| 国产精品中文有码| 寂寞少妇一区二区三区| 美女尤物国产一区| 久久精品99久久久| 国产一区二区三区最好精华液| 老司机精品视频在线| 免费成人深夜小野草| 久久国产免费看| 狠狠色丁香九九婷婷综合五月| 美女任你摸久久| 精品一区二区久久| 国内精品视频一区二区三区八戒| 久久99国产精品免费| 国内外精品视频| 粉嫩在线一区二区三区视频| 丁香天五香天堂综合| 国产91精品在线观看| eeuss鲁一区二区三区| 91视频免费观看| 欧美综合色免费| 欧美日本在线观看| 欧美成人猛片aaaaaaa| 久久综合久久久久88| 国产精品护士白丝一区av| 国产精品不卡在线| 亚洲国产综合色| 日本成人在线网站| 国产suv一区二区三区88区| av中文字幕不卡| 日本韩国欧美在线| 欧美二区乱c少妇| 久久精品欧美日韩| 亚洲男人的天堂网| 日韩国产成人精品| 国产精品亚洲第一区在线暖暖韩国| 波多野结衣欧美| 欧美日韩不卡一区| 国产欧美一区二区三区在线老狼| 亚洲欧洲成人精品av97| 日韩电影一二三区| 成人动漫视频在线| 91精品国产综合久久小美女| 精品1区2区在线观看| 综合久久久久综合| 欧美a一区二区| 91小视频在线| 日韩视频在线观看一区二区| 国产精品动漫网站| 日本不卡在线视频| 91欧美一区二区| 欧美成人激情免费网| 亚洲欧洲精品天堂一级| 免费人成网站在线观看欧美高清| 99久久婷婷国产综合精品| 7777精品伊人久久久大香线蕉| 国产日韩综合av| 婷婷国产在线综合| 成人国产精品免费网站| 日韩一区二区三区四区| 中文字幕人成不卡一区| 激情综合亚洲精品| 在线观看亚洲一区| 国产欧美视频在线观看| 日本欧美久久久久免费播放网| 99久久精品国产毛片| 日韩欧美在线123| 亚洲国产一区视频| 成人免费看片app下载| 日韩欧美卡一卡二| 午夜天堂影视香蕉久久| 91蜜桃在线免费视频| 久久久影视传媒| 日本不卡视频在线| 欧美性感一类影片在线播放| 国产精品理伦片| 国产福利一区在线观看| 日韩一本二本av| 五月激情综合网| 91精品福利在线| 成人免费小视频| 成人一区二区三区视频| 久久人人爽爽爽人久久久| 麻豆精品一区二区av白丝在线| 欧美视频一区二区三区在线观看| 亚洲欧美日韩系列| 不卡一区二区三区四区| 久久久美女毛片| 国内精品免费**视频| 日韩一区二区在线播放| 日本免费在线视频不卡一不卡二| 欧美日韩你懂得| 亚洲一二三四区| 欧美羞羞免费网站| 亚洲小说欧美激情另类| 欧美丝袜丝交足nylons| 亚洲成人精品影院| 6080国产精品一区二区| 日韩精品福利网| 日韩情涩欧美日韩视频| 日本成人在线不卡视频| 日韩欧美一区中文| 韩国av一区二区三区| 久久久久成人黄色影片| 成人永久aaa| 成人欧美一区二区三区黑人麻豆| 99精品在线免费| 亚洲人快播电影网| 色悠悠亚洲一区二区| 亚洲一级二级三级| 欧美一卡2卡3卡4卡| 蜜臀国产一区二区三区在线播放 | 成人黄色免费短视频| 亚洲国产电影在线观看| www.爱久久.com| 亚洲午夜免费电影| 7777精品伊人久久久大香线蕉| 麻豆91在线播放| 久久精品日产第一区二区三区高清版| 国产精品系列在线播放| 国产精品久久久久久久久免费樱桃| jiyouzz国产精品久久| 一级精品视频在线观看宜春院| 欧美日韩和欧美的一区二区| 蜜臀av亚洲一区中文字幕| 久久人人超碰精品| 91欧美一区二区| 日韩av一区二区在线影视| 亚洲精品一区二区三区香蕉| 成人午夜精品一区二区三区| 一区二区三区91| 精品嫩草影院久久| 成人av在线播放网址| 亚洲妇女屁股眼交7| 欧美va天堂va视频va在线| 国产不卡视频在线观看| 亚洲国产精品自拍| 日韩美女一区二区三区四区| av激情亚洲男人天堂| 无吗不卡中文字幕| 国产日韩欧美精品电影三级在线 | 在线精品视频免费播放| 久久成人免费网| 亚洲男人的天堂在线aⅴ视频| 日韩精品一区在线| av亚洲精华国产精华| 蜜桃视频在线一区| 亚洲视频免费在线观看| 日韩欧美国产成人一区二区| 色综合天天综合网天天看片| 毛片av中文字幕一区二区| 日韩伦理av电影| 精品理论电影在线观看| 一本一本久久a久久精品综合麻豆| 美女脱光内衣内裤视频久久网站| 亚洲人成伊人成综合网小说| 欧美精品一区二区在线观看| 欧美主播一区二区三区| 国产69精品一区二区亚洲孕妇| 午夜欧美视频在线观看| 亚洲人成影院在线观看| 欧美高清在线精品一区| 欧美一二三区精品| 精品视频在线免费观看|