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

📄 dib.h

📁 数据结构求最短路径vc++ 实现手动作图
💻 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 + -