📄 bmpfile.h
字号:
#if !defined(AFX_BMPFILE_H__3CA2FA2E_C5B7_4110_9859_40F913CE9083__INCLUDED_)
#define AFX_BMPFILE_H__3CA2FA2E_C5B7_4110_9859_40F913CE9083__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// BmpFile.h : header file
//
/////////////////////////////////////////////////////////////////////////////
// CBmpFile command target
class CBmpFile : public CObject
{
DECLARE_DYNCREATE(CBmpFile)
CBmpFile(); // protected constructor used by dynamic creation
CBmpFile(CSize size, int nBitCount); // builds BITMAPINFOHEADER
// Attributes
public:
BOOL m_bGray;
LPVOID m_pColorTable;
HBITMAP m_hBitmap;
LPBYTE m_pBits; // starting address of DIB bits
LPBITMAPINFOHEADER m_pBmih; // buffer containing the BITMAPINFOHEADER
private:
DWORD m_dwSizeImage; // of bits -- not BITMAPINFOHEADER or BITMAPFILEHEADER
int m_nColorTableEntries;
HPALETTE m_hPalette;
BOOL m_bNoDelBits;
// Operations
public:
int GetSizeImage() {return m_dwSizeImage;}
int GetSizeHeader()
{return sizeof(BITMAPINFOHEADER) + sizeof(RGBQUAD) * m_nColorTableEntries;}
CSize GetDimensions();
BOOL Draw(CDC* pDC, CPoint origin, CSize size); // until we implemnt CreateDibSection
UINT UsePalette(CDC* pDC, BOOL bBackground = FALSE);
BOOL MakePalette();
BOOL SetSystemPalette(CDC* pDC);
HBITMAP CreateBitmap(CDC* pDC);
BOOL Read(CFile* pFile);
BOOL ReadSection(CFile* pFile, CDC* pDC = NULL);
BOOL Write(CFile* pFile);
BOOL LoadFile( LPCTSTR szPathName);
BOOL LoadFileSection(LPCTSTR szPathName, CDC* pDC = NULL);
BOOL WriteFile(LPCTSTR szPathName);
HBITMAP Detach();
void GetPixel( CPoint &pt,BYTE &r,BYTE &g,BYTE &b);
void GrayImage( CDC *pDC );
private:
void Empty();
void InitMemberVar();
void ComputePaletteSize(int nBitCount);
void CalcBufSize();
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CBmpFile)
//}}AFX_VIRTUAL
// Implementation
public:
virtual ~CBmpFile();
// Generated message map functions
//{{AFX_MSG(CBmpFile)
// NOTE - the ClassWizard will add and remove member functions here.
//}}AFX_MSG
};
/////////////////////////////////////////////////////////////////////////////
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_BMPFILE_H__3CA2FA2E_C5B7_4110_9859_40F913CE9083__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -