📄 dib.h
字号:
/////////////////////////////////////////////////////////////////////////////
// Copyright (C) 1998 by Jorge Lodos
// All rights reserved
//
// Distribute and use freely, except:
// 1. Don't alter or remove this notice.
// 2. Mark the changes you made
//
// Send bug reports, bug fixes, enhancements, requests, etc. to:
// lodos@cigb.edu.cu
/////////////////////////////////////////////////////////////////////////////
// dib.h
#ifndef _INC_DIB
#define _INC_DIB
/* DIB constants */
#define PALVERSION 0x300
/* Dib Header Marker - used in writing DIBs to files */
#define DIB_HEADER_MARKER ((WORD) ('M' << 8) | 'B')
/* DIB Macros*/
#define RECTWIDTH(lpRect) ((lpRect)->right - (lpRect)->left)
#define RECTHEIGHT(lpRect) ((lpRect)->bottom - (lpRect)->top)
// WIDTHBYTES performs DWORD-aligning of DIB scanlines. The "bits"
// parameter is the bit count for the scanline (biWidth * biBitCount),
// and this macro returns the number of DWORD-aligned bytes needed
// to hold those bits.
#define WIDTHBYTES(bits) (((bits) + 31) / 32 * 4)
class EDITPADC_CLASS CDib : public CObject
{
DECLARE_DYNAMIC(CDib)
// Constructors
public:
CDib();
// Attributes
protected:
LPBYTE m_pBits;
LPBITMAPINFO m_pBMI;
public:
CPalette* m_pPalette;
public:
DWORD Width() const;
DWORD Height() const;
WORD NumColors() const;
BOOL IsValid() const { return (m_pBMI != NULL); }
// Operations
public:
BOOL Paint(HDC, LPRECT, LPRECT) const;
HGLOBAL CopyToHandle() const;
DWORD Save(CFile& file) const;
DWORD Read(CFile& file);
DWORD ReadFromHandle(HGLOBAL hGlobal);
void Invalidate() { Free(); }
virtual void Serialize(CArchive& ar);
// Implementation
public:
virtual ~CDib();
protected:
BOOL CreatePalette();
WORD PaletteSize() const;
void Free();
public:
#ifdef _DEBUG
virtual void Dump(CDumpContext& dc) const;
#endif
protected:
CDib& operator = (CDib& dib);
};
#endif //!_INC_DIB
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -