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

📄 hdib.h

📁 VC++高级编程技巧与示例
💻 H
字号:
// HDib.h: interface for the CDib class.
//
//////////////////////////////////////////////////////////////////////

/////////////////////////////////////
//     CDib 1999.12.30 version     //
//           By HuYu               //
/////////////////////////////////////


#if !defined(AFX_HDIB_H__EF233C76_B7AF_11D3_9462_0000000038B2__INCLUDED_)
#define AFX_HDIB_H__EF233C76_B7AF_11D3_9462_0000000038B2__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "fstream.h"
#include "stdio.h"
#define PALVERSION   0x300
#define RECTWIDTH(lpRect)     ((lpRect)->right - (lpRect)->left)
#define RECTHEIGHT(lpRect)    ((lpRect)->bottom - (lpRect)->top)
/////////////////////////////////////
//     CDib 1999.12.30 version     //
//           By HuYu               //
/////////////////////////////////////
class CDib  
{
/***********************************/
/***********************************/
/**            成员变量:         **/
/***********************************/
/***********************************/
private:
	BYTE * m_Buffer;
	HPALETTE m_hPal;
public:
	RGBQUAD * m_Quad;
	DWORD m_BmpLoaded;
	BITMAPFILEHEADER m_BmpFH;
	BITMAPINFO * m_BmpInfo;
//位图数据:
	DWORD Width;//位图宽度(像素);
	DWORD Height;//位图高度(像素);
	DWORD BPP;//位图色彩深度;
	DWORD BufferSize;//位图数据区尺寸(字节);
	DWORD Bpl;//位图每一行占据的字节数;
	DWORD NumberOfColors;//调色板中颜色数目;
	 WORD BmpMarker;//位图标识;
/***********************************/
/***********************************/
/**            成员函数:         **/
/***********************************/
/***********************************/
private:
	BOOL CreatePalette();
	DWORD PaletteSize();
	void CalBmpData();
public:
	BITMAPINFOHEADER GetImageInfo(LPCTSTR fn, DWORD &w, DWORD &h);
	void Sort(DWORD &x0,DWORD &x1);
	BOOL Draw(HDC hDC,LPRECT rcDest,LPRECT rcSrc);
	void SetBmpMarker(DWORD b='B',DWORD m='M');
	BOOL PickBitmapToFile(LPCTSTR fn,DWORD xt,DWORD yt,DWORD xb,DWORD yb);
//根据输入的像素位置提取位图数据:
//根据像素位置获取在内存中的位置;
	BYTE * FindPos(DWORD x,DWORD y);
	
	BYTE * GetBuffer();//获取内存指针;
	void   Free();//释放所有内存;
	BOOL   SaveBmp(LPCTSTR fn);
	BOOL   LoadBmp(LPCTSTR fn);
	CDib();
	virtual ~CDib();

};

#endif // !defined(AFX_HDIB_H__EF233C76_B7AF_11D3_9462_0000000038B2__INCLUDED_)

⌨️ 快捷键说明

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