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

📄 bmpfile.h

📁 带滚动条的图像浏览器
💻 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 + -