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

📄 imageprocessctl.h

📁 这是书上的代码
💻 H
字号:
#if !defined(AFX_IMAGEPROCESSCTL_H__17A90575_A273_11D6_A0F2_0080C8EBBC7D__INCLUDED_)
#define AFX_IMAGEPROCESSCTL_H__17A90575_A273_11D6_A0F2_0080C8EBBC7D__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

// ImageProcessCtl.h : Declaration of the CImageProcessCtrl ActiveX Control class.

/////////////////////////////////////////////////////////////////////////////
// CImageProcessCtrl : See ImageProcessCtl.cpp for implementation.

class CImageProcessCtrl : public COleControl
{
	DECLARE_DYNCREATE(CImageProcessCtrl)

// Constructor
public:
	CImageProcessCtrl();

// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CImageProcessCtrl)
	public:
	virtual void OnDraw(CDC* pdc, const CRect& rcBounds, const CRect& rcInvalid);
	virtual void DoPropExchange(CPropExchange* pPX);
	virtual void OnResetState();
	//}}AFX_VIRTUAL

// Implementation
protected:
	~CImageProcessCtrl();

	DECLARE_OLECREATE_EX(CImageProcessCtrl)    // Class factory and guid
	DECLARE_OLETYPELIB(CImageProcessCtrl)      // GetTypeInfo
	DECLARE_PROPPAGEIDS(CImageProcessCtrl)     // Property page IDs
	DECLARE_OLECTLTYPE(CImageProcessCtrl)		// Type name and misc status

// Message maps
	//{{AFX_MSG(CImageProcessCtrl)
		// NOTE - ClassWizard will add and remove member functions here.
		//    DO NOT EDIT what you see in these blocks of generated code !
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()

// Dispatch maps
	//{{AFX_DISPATCH(CImageProcessCtrl)
	afx_msg BOOL _Clear();
	afx_msg BOOL _ReadBMPFile(LPCTSTR strFileName);
	afx_msg BOOL _ConvterToGrayBMP();
	afx_msg BOOL _FilterMean();
	afx_msg BOOL _SaveGrayBMPFile(LPCTSTR strFileName);
	//}}AFX_DISPATCH
	DECLARE_DISPATCH_MAP()

	afx_msg void AboutBox();

// Event maps
	//{{AFX_EVENT(CImageProcessCtrl)
	//}}AFX_EVENT
	DECLARE_EVENT_MAP()

// Dispatch and event IDs
public:
	BOOL Show256DIB_vfw(HDC hdc, HANDLE hDIB);
	enum {
	//{{AFX_DISP_ID(CImageProcessCtrl)
	dispidClear = 1L,
	dispidReadBMPFile = 2L,
	dispidConvterToGrayBMP = 3L,
	dispidFilterMean = 4L,
	dispidSaveGrayBMPFile = 5L,
	//}}AFX_DISP_ID
	};

private:
	HANDLE Create256DIB(DWORD dwWidth, DWORD dwHeight, BYTE *pImgData);

	LPBYTE m_lp24ImgBits;   //真彩色数据指针
	LPBYTE m_lp8ImgBits;    //8位图数据指针
	long m_lngWidth;          //图像宽
	long m_lngHeight;         //图像高
	long m_lng24WidthBytes;   //宽对齐后的字节数
	long m_lng8WidthBytes;    
	unsigned long m_ulng24BitsCount;   //图像数据数
	unsigned long m_ulng8BitsCount;        
	LPBYTE m_lpBMPFileData;      //BMP文件数据
	LPBYTE m_lp8ImgBitsMove;     //移动指针
	LPBYTE m_lp24ImgBitsMove;                 
	HANDLE m_h8ImgDIB;         //DIB数据句柄

};

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

#endif // !defined(AFX_IMAGEPROCESSCTL_H__17A90575_A273_11D6_A0F2_0080C8EBBC7D__INCLUDED)

⌨️ 快捷键说明

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