⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bmpico.cpp

📁 Displays CPU time usage, the list of processes (can be terminated) and the task which are running (c
💻 CPP
字号:
//+NM Copyright (c) 2003 Qta
#include "stdafx.h"
#include "ITaskMgr.h"

#include "bmpico.h"

static RGBQUAD s_rgb[16];

//----------------------------------------------------------
CBits::CBits ()
{
	m_hVDC    = NULL;
	m_hBmpNow = NULL;
	m_hBmpOld = NULL;
	m_pBits   = NULL;
	m_biBitCount = 4;

	memset (&s_rgb, 0, sizeof(s_rgb));

	s_rgb[0].rgbBlue  = 0;		//0:Black
	s_rgb[0].rgbGreen = 0;
	s_rgb[0].rgbRed   = 0;

	s_rgb[1].rgbBlue  = 0;		//1:Red
	s_rgb[1].rgbGreen = 0;
	s_rgb[1].rgbRed   = 128;

	s_rgb[2].rgbBlue  = 0;		//2:Green
	s_rgb[2].rgbGreen = 80;
	s_rgb[2].rgbRed   = 0;

	s_rgb[3].rgbBlue  = 0;		//3:Yellow
	s_rgb[3].rgbGreen = 128;
	s_rgb[3].rgbRed   = 128;

	s_rgb[4].rgbBlue  = 128;	//4:Blue
	s_rgb[4].rgbGreen = 0;
	s_rgb[4].rgbRed   = 0;

	s_rgb[5].rgbBlue  = 128;	//5:Perple
	s_rgb[5].rgbGreen = 0;
	s_rgb[5].rgbRed   = 128;

	s_rgb[6].rgbBlue  = 0;		//6:Green(light)
	s_rgb[6].rgbGreen = 255;
	s_rgb[6].rgbRed   = 0;

	s_rgb[7].rgbBlue  = 192;	//7:Gray
	s_rgb[7].rgbGreen = 192;
	s_rgb[7].rgbRed   = 192;

	s_rgb[8].rgbBlue  = 208;	//8:Gray
	s_rgb[8].rgbGreen = 208;
	s_rgb[8].rgbRed   = 208;

	s_rgb[9].rgbBlue  = 255;	//9:While
	s_rgb[9].rgbGreen = 255;
	s_rgb[9].rgbRed   = 255;

	s_rgb[10].rgbBlue  = 128;	//10:Gray2
	s_rgb[10].rgbGreen = 128;
	s_rgb[10].rgbRed   = 128;

	s_rgb[11].rgbBlue  = 0;		//3:Yellow
	s_rgb[11].rgbGreen = 255;
	s_rgb[11].rgbRed   = 255;

	s_rgb[12].rgbBlue  = 255;	//Perple
	s_rgb[12].rgbGreen = 0;
	s_rgb[12].rgbRed   = 255;

	s_rgb[13].rgbBlue  = 255;	//Blue
	s_rgb[13].rgbGreen = 0;
	s_rgb[13].rgbRed   = 0;

	s_rgb[14].rgbBlue  = 0;		//Red
	s_rgb[14].rgbGreen = 0;
	s_rgb[14].rgbRed   = 255;

	s_rgb[15].rgbBlue  = 255;	//While
	s_rgb[15].rgbGreen = 255;
	s_rgb[15].rgbRed   = 255;
}

//----------------------------------------------------------
CBits::~CBits ()
{
	Close ();
}

//----------------------------------------------------------
BOOL CBits::Create (HWND hWnd, HDC hDC, int sx, int sy)
{
	Close ();

	// 價僢僩儅僢僾峔憿懱傪嶌惉
	BITMAPINFO* bi;
	bi = (BITMAPINFO*) LocalAlloc (LPTR,
		sizeof(BITMAPINFOHEADER) + sizeof(RGBQUAD) * 16);
	if (bi == NULL)
		return FALSE;

	// 墶暆偺僶僀僩悢
	m_nWidthBytes = WIDTHBYTES(sx * 8);

	// 僿僢僟乕忣曬傪嶌惉
	memset (&bi->bmiHeader, 0, sizeof(BITMAPINFOHEADER));
	bi->bmiHeader.biSize        = sizeof(BITMAPINFOHEADER);
	bi->bmiHeader.biWidth       = sx;
	bi->bmiHeader.biHeight      = sy;
	bi->bmiHeader.biPlanes      = 1;
	bi->bmiHeader.biBitCount    = m_biBitCount;
	bi->bmiHeader.biCompression = BI_RGB;
	bi->bmiHeader.biSizeImage   = m_nWidthBytes * sy;
	bi->bmiHeader.biClrUsed     = 16;
	bi->bmiHeader.biClrImportant= 16;

	// 僷儗僢僩忣曬傪嶌惉
	memcpy (bi->bmiColors, s_rgb, sizeof(RGBQUAD) * 16);
	int iUsage = DIB_RGB_COLORS;

	// 價僢僩儅僢僾傪嶌惉
	m_hBmpNow = CreateDIBSection (hDC, bi, iUsage,
		(void**)&m_pBits, NULL, 0);

	// 價僢僩儅僢僾忣曬傪奐曻
	LocalFree (bi);

	// 價僢僩儅僢僾嶌惉偵幐攕
	if (m_hBmpNow == NULL)
		return FALSE;

	// 屳姺偺俢俠傪嶌惉
	m_hVDC = CreateCompatibleDC (hDC);

	// 價僢僩儅僢僾傪晅偗傞
	m_hBmpOld = (HBITMAP) SelectObject (m_hVDC, m_hBmpNow);

	// 價僢僩儅僢僾忣曬傪庢摼
	GetObject (m_hBmpNow, sizeof(BITMAP), &m_bm);

	return TRUE;
}

//----------------------------------------------------------
void CBits::Close ()
{
	if (m_hVDC != NULL) {
		if (m_hBmpOld != NULL) {
			SelectObject (m_hVDC, m_hBmpOld);
			m_hBmpOld = NULL;
		}
		DeleteDC (m_hVDC);
		m_hVDC = NULL;
	}

	if (m_hBmpNow != NULL) {
		DeleteObject (m_hBmpNow);
		m_hBmpNow = NULL;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -