📄 ddb.h
字号:
/////////////////////////////////////////////////////////////////////////////////
//
// Ddb.h: interface for the CDdb class.
//
////////////////////////////////////////////////////////////////////////////////
// 版权所有(2002)
// Copyright(2002)
// 编写者: 向世明
// Author: Xiang Shiming
#ifndef _CDDB_H
#define _CDDB_H
class CDdb : public CObject
{
DECLARE_DYNAMIC(CDdb)
public:
CDdb();
CDdb(CBitmap* pBitmap);
virtual ~CDdb();
BOOL Draw(CDC* pDstDC, int x, int y, int nWidth, int nHeight, int xSrc, int ySrc, int nSrcWidth, int nSrcHeight, DWORD dwRop);
DWORD SetBitmapBits( DWORD dwCount, const void* lpbyBits );
DWORD SetBitmapBits(int x, int y, int nWidth, int nHeight, int nBitCount, LPBYTE lpbyBits);
void GetDdbDataTo32(int x, int y, int nWidth, int nHeight, LPBYTE lpbyBits32);
void GetDdbDataTo24(int x, int y, int nWidth, int nHeight, LPBYTE lpbyBits24);
void SaveAs256(const char *pszDibFileName, int x, int y, int nWidth, int nHeight);
void QuantizeColor(LPBYTE pDdbBits24, int nScanWidth, int nScanHeight, LPBYTE pDdbBits8, CPalette* pPalette);
void Save(const char* pszDibFileName, int x, int y, int nWidth, int nHeight);
LONG CalcDdbWidthBytes(LONG nWidth, BYTE byBitCount);
LONG GetDdbWidthBytes() const;
LONG GetHeight() const;
LONG GetWidth() const;
BYTE GetBitCount() const ;
BYTE* GetDdbData() const;
void SetDdb(CBitmap* pBitmap);
public:
CBitmap* m_pDdb;
public:
void ClearMemory();
#ifdef _DEBUG
virtual void Dump(CDumpContext& dc) const;
virtual void AssertValid() const;
#endif
protected:
BYTE* m_pDdbData; //所有DDB数据
BYTE m_nBitCount; //设备所支持的颜色位数, 它等于你在显示模式中设置的颜色位数
LONG m_nHeight; //DDB的高度
LONG m_nWidth; //DDB的宽度
LONG m_nDdbWidthBytes; //DDB每行的宽度(字节)
HGLOBAL m_hDdbData;
private:
void GetRGB16(BYTE* pbyRGB, WORD* pwColor);
void GetSystemPaletteEntries(RGBQUAD* pRGBQuad);
LONG CalcDibWidthBytes(LONG nWidth, BYTE byBitCount);
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -