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

📄 bmpshow.h

📁 thinking in java 3rd 英文版的
💻 H
字号:
#if !defined(AFX_BMPSHOW_H__547AA5CA_E8F8_4660_B39E_112B6DF294BB__INCLUDED_)
#define AFX_BMPSHOW_H__547AA5CA_E8F8_4660_B39E_112B6DF294BB__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// BmpShow.h : header file
//
#include "RectTrackerEx.h"
/////////////////////////////////////////////////////////////////////////////
// CBmpShow window
class CBmpShow : public CStatic
{
// Construction
public:
	CBmpShow();
	// Implementation
public:
	void ComputeImageSize(LPBITMAPINFOHEADER lpbmih, LPDWORD lpdwSize);	
	BOOL SaveModify(LPBITMAPINFOHEADER lpbmih, LPVOID lpvBits);
	BOOL SetBmpInfo(const LPBITMAPINFOHEADER lpbmih,  const LPVOID lpvBits, int* pnCharLimit);
	void SetBmpText(const CString &strText, BOOL bRepaint =  TRUE);
	BOOL SetSaveBmpPath(LPCTSTR pszPath);
	BOOL SetReadBmpPath(LPCTSTR pszPath, int* pnCharLimit);
	virtual ~CBmpShow();
	
// Attributes
public:
	
private:
	void CreateScrollBar();	
	CString NewLineString(const CString &strSrc, const RECT rect);
	void PaintBmpAndText();
	void ComputeDrawRect();
	void ComputePaletteSize(int nBitCounts);
	BOOL CreateMemObject(CDC* pDC, BITMAPINFO *lpbmi, int* pnLineChar);

private:
	LPBYTE m_lpDIBits;					//DIB位的起始位置
	LPBITMAPINFOHEADER m_lpBMPHdr;		//BITMAPINFOHEADER信息
	
	
	DWORD     m_dwImageSize;				//非BITMAPINFOHEADER或BITMAPFILEHEADER的位
	int       m_nColorEntries;				//颜色表项的个数
	CDC       *m_pMemDC;
	CBitmap   *m_pMemBmp;
	CBitmap   *m_pOldBmp;

	CString   m_strBmpText;//位图上的文本
	CRect     m_rcDraw;//图像绘制的位置
	CRectTrackerEx  m_textTracker;//设置文本绘制区域

/*	CScrollBar m_ScrollBarHor;//水平滚动条
	CScrollBar m_ScrollBarVer;//竖直滚动条
	int  m_nSBarHei;//水平滚动条的高度
	int  m_nSBarWid;//竖直滚动条的宽度
*/

// Operations
public:

// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CBmpShow)
	//}}AFX_VIRTUAL


	// Generated message map functions
protected:
	//{{AFX_MSG(CBmpShow)
	afx_msg void OnPaint();
	afx_msg BOOL OnEraseBkgnd(CDC* pDC);
	afx_msg BOOL OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message);
	afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
	afx_msg void OnMouseMove(UINT nFlags, CPoint point);
	afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
	//}}AFX_MSG

	DECLARE_MESSAGE_MAP()
};

/////////////////////////////////////////////////////////////////////////////

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_BMPSHOW_H__547AA5CA_E8F8_4660_B39E_112B6DF294BB__INCLUDED_)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -