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

📄 imageprocview.h

📁 用内存设备上下文实现图像选中区域 的判断
💻 H
字号:
// ImageProcView.h : interface of the CImageProcView class
//
/////////////////////////////////////////////////////////////////////////////

#if !defined(AFX_IMAGEPROCVIEW_H__D7214CEC_88BC_11D4_8B17_5254AB11AF95__INCLUDED_)
#define AFX_IMAGEPROCVIEW_H__D7214CEC_88BC_11D4_8B17_5254AB11AF95__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "dibapi.h"
	// Added by ClassView
#include "ImageProcDoc.h"


struct RADPOINT
{
	int xPoint;
	int yPoint;
	int r;
};

class CImageProcView : public CScrollView
{
protected: // create from serialization only
	CImageProcView();
	DECLARE_DYNCREATE(CImageProcView)
public:
	
protected:
	HDIB hdib;
	CRect m_rcDIB;//the rect of the image
	CPalette* pPalette;
// Attributes
public:
	CImageProcDoc* GetDocument();

// Operations
public:

// Overrides
	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CImageProcView)
	public:
	virtual void OnDraw(CDC* pDC);  // overridden to draw this view
	virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
	protected:
	virtual void OnInitialUpdate(); // called first time after construct
	virtual BOOL OnPreparePrinting(CPrintInfo* pInfo);
	virtual void OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo);
	virtual void OnEndPrinting(CDC* pDC, CPrintInfo* pInfo);
	//}}AFX_VIRTUAL

// Implementation
private:
	HDIB m_hdibPrebina;
	BYTE iArray[1024][768];

	
	POINT m_pinPoint;//the electric pin position
	POINT m_oldPoint;
	POINT m_oldPointS;
	POINT m_oldDibPoint;

private:
	
public:	
	int m_thresh;

	virtual ~CImageProcView();
#ifdef _DEBUG
	virtual void AssertValid() const;
	virtual void Dump(CDumpContext& dc) const;
#endif

protected:

// Generated message map functions
protected:
	HBITMAP m_hBitmap;
	CBitmap* m_pBitmap;
	//{{AFX_MSG(CImageProcView)
	afx_msg void OnFileOpenColor();
	afx_msg void OnPaint();
	afx_msg void OnProcBina();
	afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
	afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
	afx_msg void OnMouseMove(UINT nFlags, CPoint point);
	afx_msg void OnUpdateProcBina(CCmdUI* pCmdUI);
	afx_msg void OnSelectPoly();
	afx_msg void OnThreshChanged();
	afx_msg void OnRButtonDown(UINT nFlags, CPoint point);
	afx_msg void OnUpdateSelectPoly(CCmdUI* pCmdUI);
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
private:
	
	BOOL bSelectPoly;

//	int m_typeETree;
//	CThreshDlg *m_pThDlg;
	CDC *pDibDC;
	int m_iRub;
	void PaintEnd();
	CDC* PaintBegin(CDC *pDC);
	void PaintEndS();
	CDC* PaintBeginS(CDC *pDC);

	CDC *m_pMemDC;
	CBitmap *m_pBitmapTmp;
	CPalette *m_pPaletteTmp;
	HDIB hdibS;
	HBITMAP m_hBitmapS;
	CBitmap* m_pBitmapS;
	POINT m_pointS[3000];
	POINT m_pointSL[3000];
	int m_nPoints;

	void RinkAft(BYTE inArray[1024][768],BYTE outArray[1024][768],const WORD wDIBWidth,const WORD wDIBHeight);
	int GetThresh(const BYTE inArray[1024][768],const WORD wDIBWidth,const WORD wDIBHeight,
		int *minLum,int *maxLum);
};

#ifndef _DEBUG  // debug version in ImageProcView.cpp
inline CImageProcDoc* CImageProcView::GetDocument()
   { return (CImageProcDoc*)m_pDocument; }
#endif

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

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

#endif // !defined(AFX_IMAGEPROCVIEW_H__D7214CEC_88BC_11D4_8B17_5254AB11AF95__INCLUDED_)

⌨️ 快捷键说明

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