bitmapstatusbar.cpp

来自「VC.net 的一些有用的技巧」· C++ 代码 · 共 56 行

CPP
56
字号
// BitmapStatusBar.cpp : 实现文件
//

#include "stdafx.h"
#include "StatusBarDemo.h"
#include "BitmapStatusBar.h"


// CBitmapStatusBar

IMPLEMENT_DYNAMIC(CBitmapStatusBar, CStatusBar)
CBitmapStatusBar::CBitmapStatusBar()
{
}

CBitmapStatusBar::~CBitmapStatusBar()
{
}


BEGIN_MESSAGE_MAP(CBitmapStatusBar, CStatusBar)
END_MESSAGE_MAP()



// CBitmapStatusBar 消息处理程序


void CBitmapStatusBar::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct)
{

	// TODO:  添加您的代码以绘制指定项
	switch(lpDrawItemStruct->itemID)
	{
	case 4:
		//从资源中选择位图
		CBitmap pBitmap;
		//加载位图,使用Import从文件加载资源,可以不受调色板限制
		pBitmap.LoadBitmap(IDB_BITMAP1);
		//将状态条(StatusBar)附加到一个CDC对象
		CDC dc,SourceDC;
		dc.Attach(lpDrawItemStruct->hDC);
		//得到pane的大小和坐标
		CRect rect(&lpDrawItemStruct->rcItem);
		//将当前位图放入兼容CDC
		SourceDC.CreateCompatibleDC(NULL);//生成兼容的CDC
		CBitmap*pOldBitmap=SourceDC.SelectObject(&pBitmap);//选择位图
		dc.BitBlt(rect.left,rect.top,rect.Width(),rect.Height(),&SourceDC,0,0,SRCCOPY);//BitBlt
		SourceDC.SelectObject(pOldBitmap);//删除CDC中所选择的位图
		pBitmap.DeleteObject();//删除位图
		//将状态条(StatusBar)与CDC对象分离,否则hDC将会在CDC废弃时被删除
		dc.Detach();
		return;
	}
}

⌨️ 快捷键说明

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