📄 dib.h
字号:
// Dib.h: interface for the CDib class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_DIB_H__0EC434E2_1E53_494E_8607_6B207483ED55__INCLUDED_)
#define AFX_DIB_H__0EC434E2_1E53_494E_8607_6B207483ED55__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#ifndef _INC_DIBAPI
#define _INC_DIBAPI
//DIB句柄
DECLARE_HANDLE(HDIB);
//DIB常量
#define PALVERSION 0x300
///DIB宏
///判断是否是win 3.0 的DIB
#define IS_WIN30_DIB(lpbi) ((*(LPDWORD)(lpbi))==sizeof(BITMAPINFOHEADER))
//计算矩形区域的宽度
#define RECTWIDTH(lpRect) ((lpRect)->right-(lpRect)->left)
///计算矩形区域的高度
#define RECTHEIGHT(lpRect) ((lpRect)->bottom-(lpRect)->top)
//WINDTHBYTES就是用来计算图像每行字节数,必须是4 的整数倍
//在计算图像大小是,采用公式,biSizeImage=图像每行的字节数*BIHeight,而不是用biWith
#define WIDTHBYTES(bits) (((bits)+31)/32*4)
#endif //!_INC_DIBAPI
class CDib
{
public:
CDib();
virtual ~CDib();
protected:
HDIB m_hDib; //为图句柄
CPalette m_Pal; //调色板对象
public:
BOOL m_bIsImageMap; //是否设计地图范围
float m_dScale; //原始图的比例 迟
float m_x1,m_x2,m_y1,m_y2; //图的范围
public :
//函数原形
BOOL PaintDIB(HDC,LPRECT,LPRECT); //显示图
HGLOBAL CopyHandle(HGLOBAL h); //复制图
long GetWidth(); //获得图宽度
long GetHeight(); //获得图的高度
BOOL SaveDIB (LPCTSTR lpszDibName);//保存位图
BOOL ReadDIBFile(LPCTSTR lpszDibName); //读取位图
protected:
BOOL CreateDIBPalette(HDIB hDIB); //创建调色板
LPTSTR FindDIBBits(LPTSTR lpbi); //定位位图的数据的起始位置
LONG DIBWidth (LPTSTR lpDIB); //DIB的宽度
LONG DIBHeight (LPTSTR lpDIB); //DIB高度
WORD PaletteSize(LPTSTR lpbi); //调色板大小
WORD DIBNumColors(LPTSTR lpbi); //DIB颜色数
WORD DIBBitsCount(LPTSTR lpbi); //DIB的位数
};
#endif // !defined(AFX_DIB_H__0EC434E2_1E53_494E_8607_6B207483ED55__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -