亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? imagenview.cpp

?? 這是VC++ 2003.net圖像處理的光盤源程序!!!非常好的
?? CPP
?? 第 1 頁 / 共 5 頁
字號:
// ImageNView.cpp : implementation of the CImageNView class
//

#include "stdafx.h"
#include "ImageN.h"

#include "ImageNDoc.h"
#include "ImageNView.h"
 
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

extern CImage	SaveCanvus,WorkCanvus,img2,img3,img4,img5,img6,img7,img8,WindowCanvus;
extern CImage*	pImg[10];
extern CString	m_FileName;
extern int		nDirectionNo,nSobelFlag,nTrackFlag;
extern double	DoubleTab[256];

/////////////////////////////////////////////////////////////////////////////
// CImageNView

IMPLEMENT_DYNCREATE(CImageNView, CView)

BEGIN_MESSAGE_MAP(CImageNView, CView)
	//{{AFX_MSG_MAP(CImageNView)
	ON_WM_PAINT()
	ON_COMMAND(ID_REFRESH, OnRefresh)
 	ON_UPDATE_COMMAND_UI(ID_REFRESH, OnUpdateRefresh)
	ON_COMMAND(ID_GRAY_IMAGE, OnGrayImage)
 	ON_UPDATE_COMMAND_UI(ID_GRAY_IMAGE, OnUpdateGrayImage)
	ON_COMMAND(ID_GT_EXP, OnGtExp)
	ON_COMMAND(ID_GT_SQUARE, OnGtSquare)
	ON_COMMAND(ID_GT_LINEAR, OnGtLinear)
	ON_COMMAND(ID_GT_SQRT, OnGtSqrt)
	ON_COMMAND(ID_GT_LOG, OnGtLog)
	ON_COMMAND(ID_GT_EQUAL, OnGtEqual)
	ON_COMMAND(ID_GT_HISTO_EQ, OnGtHistoEq)
	ON_COMMAND(ID_GT_NEGA, OnGtNega)
	ON_COMMAND(ID_BORDER_EQUAL, OnBorderEqual)
	ON_COMMAND(ID_GT_PSENDOCOLOR, OnGtPsendoColor)
	ON_COMMAND(ID_OTSU_THRESHOLD, OnOtsuThreshold)
	ON_UPDATE_COMMAND_UI(ID_GT_EXP, OnUpdateGtExp)
	ON_UPDATE_COMMAND_UI(ID_GT_SQUARE, OnUpdateGtSquare)
	ON_UPDATE_COMMAND_UI(ID_GT_LINEAR, OnUpdateGtLinear)
	ON_UPDATE_COMMAND_UI(ID_GT_SQRT, OnUpdateGtSqrt)
	ON_UPDATE_COMMAND_UI(ID_GT_LOG, OnUpdateGtLog)
	ON_UPDATE_COMMAND_UI(ID_GT_EQUAL, OnUpdateGtEqual)
	ON_UPDATE_COMMAND_UI(ID_GT_HISTO_EQ, OnUpdateGtHistoEq)
	ON_UPDATE_COMMAND_UI(ID_GT_NEGA, OnUpdateGtNega)
	ON_UPDATE_COMMAND_UI(ID_BORDER_EQUAL, OnUpdateBorderEqual)
	ON_UPDATE_COMMAND_UI(ID_GT_PSENDOCOLOR, OnUpdateGtPsendoColor)
	ON_COMMAND(ID_DENSITY_SEGMENT, OnDensitySegment)
	ON_UPDATE_COMMAND_UI(ID_DENSITY_SEGMENT, OnUpdateDensitySegment)
	ON_COMMAND(ID_MINIMUM_THRESHOLD, OnMinimumThreshold)
	ON_COMMAND(ID_ENTROPIC_THRESHOLD, OnEntropicThreshold)
	ON_COMMAND(ID_MOMENT_THRESHOLD, OnMomentThreshold)
	ON_COMMAND(ID_BIASNORMAL_THRESHOLD, OnBiasnormalThreshold)
	ON_UPDATE_COMMAND_UI(ID_OTSU_THRESHOLD, OnUpdateOtsuThreshold)
	ON_UPDATE_COMMAND_UI(ID_MINIMUM_THRESHOLD, OnUpdateMinimumThreshold)
	ON_UPDATE_COMMAND_UI(ID_ENTROPIC_THRESHOLD, OnUpdateEntropicThreshold)
	ON_UPDATE_COMMAND_UI(ID_MOMENT_THRESHOLD, OnUpdateMomentThreshold)
	ON_UPDATE_COMMAND_UI(ID_BIASNORMAL_THRESHOLD, OnUpdateBiasnormalThreshold)
	ON_COMMAND(ID_SMOOTH5, OnSmooth5)
	ON_COMMAND(ID_SMOOTH9, OnSmooth9)
	ON_COMMAND(ID_MEDIAN5, OnMedian5)
	ON_COMMAND(ID_MEDIAN9, OnMedian9)
	ON_COMMAND(ID_GRAD_BORDDETEC, OnGradBorddetec)
	ON_COMMAND(ID_ROBERTS_BORDDETEC, OnRobertsBorddetec)
	ON_COMMAND(ID_SOBEL_BORDDETEC, OnSobelBorddetec)
	ON_COMMAND(ID_LAPLACE_BORDDETEC, OnLaplaceBorddetec)
	ON_COMMAND(ID_KIRSCH_BORDDETEC, OnKirschBorddetec)
	ON_COMMAND(ID_ROBINSON_BORDDETEC, OnRobinsonBorddetec)
	ON_COMMAND(ID_PREWITT_BORDDETEC, OnPrewittBorddetec)
	ON_COMMAND(ID_BOUNDARY_ENHANCE, OnBoundaryEnhance)
	ON_UPDATE_COMMAND_UI(ID_SMOOTH5, OnUpdateSmooth5)
	ON_UPDATE_COMMAND_UI(ID_SMOOTH9, OnUpdateSmooth9)
	ON_UPDATE_COMMAND_UI(ID_MEDIAN5, OnUpdateMedian5)
	ON_UPDATE_COMMAND_UI(ID_MEDIAN9, OnUpdateMedian9)
	ON_UPDATE_COMMAND_UI(ID_GRAD_BORDDETEC, OnUpdateGradBorddetec)
	ON_UPDATE_COMMAND_UI(ID_ROBERTS_BORDDETEC, OnUpdateRobertsBorddetec)
	ON_UPDATE_COMMAND_UI(ID_SOBEL_BORDDETEC, OnUpdateSobelBorddetec)
	ON_UPDATE_COMMAND_UI(ID_LAPLACE_BORDDETEC, OnUpdateLaplaceBorddetec)
	ON_UPDATE_COMMAND_UI(ID_KIRSCH_BORDDETEC, OnUpdateKirschBorddetec)
	ON_UPDATE_COMMAND_UI(ID_ROBINSON_BORDDETEC, OnUpdateRobinsonBorddetec)
	ON_UPDATE_COMMAND_UI(ID_PREWITT_BORDDETEC, OnUpdatePrewittBorddetec)
	ON_UPDATE_COMMAND_UI(ID_BOUNDARY_ENHANCE, OnUpdateBoundaryEnhance)
	ON_COMMAND(ID_CONSERVATION_IMAGE, OnConservationImage)
	ON_UPDATE_COMMAND_UI(ID_CONSERVATION_IMAGE, OnUpdateConservationImage)
	ON_COMMAND(ID_HILDITCH_THINNING, OnHilditchThinning)
	ON_COMMAND(ID_DEUTCH_THINNING, OnDeutchThinning)
	ON_COMMAND(ID_FASTTHIN_THINNING, OnFastthinThinning)
	ON_COMMAND(ID_NACCACHE_THINNING, OnNaccacheThinning)
	ON_COMMAND(ID_PAVLIDIS1_THINNING, OnPavlidis1Thinning)
	ON_COMMAND(ID_PAVLIDIS2_THINNING, OnPavlidis2Thinning)
	ON_COMMAND(ID_ROSENFELD4_THINNING, OnRosenfeld4Thinning)
	ON_COMMAND(ID_ROSENFELD8_THINNIN, OnRosenfeld8Thinnin)
	ON_UPDATE_COMMAND_UI(ID_HILDITCH_THINNING, OnUpdateHilditchThinning)
	ON_UPDATE_COMMAND_UI(ID_DEUTCH_THINNING, OnUpdateDeutchThinning)
	ON_UPDATE_COMMAND_UI(ID_FASTTHIN_THINNING, OnUpdateFastthinThinning)
	ON_UPDATE_COMMAND_UI(ID_NACCACHE_THINNING, OnUpdateNaccacheThinning)
	ON_UPDATE_COMMAND_UI(ID_PAVLIDIS1_THINNING, OnUpdatePavlidis1Thinning)
	ON_UPDATE_COMMAND_UI(ID_PAVLIDIS2_THINNING, OnUpdatePavlidis2Thinning)
	ON_UPDATE_COMMAND_UI(ID_ROSENFELD4_THINNING, OnUpdateRosenfeld4Thinning)
	ON_UPDATE_COMMAND_UI(ID_ROSENFELD8_THINNIN, OnUpdateRosenfeld8Thinnin)
	ON_COMMAND(ID_DISTANCE, OnDistance)
	ON_UPDATE_COMMAND_UI(ID_DISTANCE, OnUpdateDistance)
	ON_UPDATE_COMMAND_UI(ID_EROSION, OnUpdateErosion)
	ON_COMMAND(ID_EROSION, OnErosion)
	ON_COMMAND(ID_DILATION, OnDilation)
	ON_COMMAND(ID_OPENING, OnOpening)
	ON_COMMAND(ID_CLOSING, OnClosing)
	ON_UPDATE_COMMAND_UI(ID_DILATION, OnUpdateDilation)
	ON_UPDATE_COMMAND_UI(ID_OPENING, OnUpdateOpening)
	ON_UPDATE_COMMAND_UI(ID_CLOSING, OnUpdateClosing)
	ON_COMMAND(ID_GRAY_EROSION, OnGrayErosion)
	ON_COMMAND(ID_GRAY_DILATION, OnGrayDilation)
	ON_COMMAND(ID_GRAY_OPENNING, OnGrayOpenning)
	ON_COMMAND(ID_GRAY_CLOSING, OnGrayClosing)
	ON_UPDATE_COMMAND_UI(ID_GRAY_EROSION, OnUpdateGrayErosion)
	ON_UPDATE_COMMAND_UI(ID_GRAY_DILATION, OnUpdateGrayDilation)
	ON_UPDATE_COMMAND_UI(ID_GRAY_OPENNING, OnUpdateGrayOpenning)
	ON_UPDATE_COMMAND_UI(ID_GRAY_CLOSING, OnUpdateGrayClosing)
	ON_COMMAND(ID_GRAY_GRADS, OnGrayGrads)
	ON_COMMAND(ID_GINNER_BORDER, OnGinnerBorder)
	ON_COMMAND(ID_GOUTER_BORDER, OnGouterBorder)
	ON_COMMAND(ID_GRAY_TOPHAT, OnGrayTophat)
	ON_UPDATE_COMMAND_UI(ID_GRAY_GRADS, OnUpdateGrayGrads)
	ON_UPDATE_COMMAND_UI(ID_GINNER_BORDER, OnUpdateGinnerBorder)
	ON_UPDATE_COMMAND_UI(ID_GOUTER_BORDER, OnUpdateGouterBorder)
	ON_UPDATE_COMMAND_UI(ID_GRAY_TOPHAT, OnUpdateGrayTophat)
	ON_COMMAND(ID_PROJECTION, OnProjection)
	ON_UPDATE_COMMAND_UI(ID_PROJECTION, OnUpdateProjection)
	ON_COMMAND(ID_IMAGE_HISTOGRAM, OnImageHistogram)
	ON_UPDATE_COMMAND_UI(ID_IMAGE_HISTOGRAM, OnUpdateImageHistogram)
	ON_COMMAND(ID_LAPSKETCH_BORDDETEC, OnLapsketchBorddetec)
	ON_UPDATE_COMMAND_UI(ID_LAPSKETCH_BORDDETEC, OnUpdateLapsketchBorddetec)
	ON_COMMAND(ID_LOG_BORDDETEC, OnLoGBorddetec)
	ON_UPDATE_COMMAND_UI(ID_LOG_BORDDETEC, OnUpdateLoGBorddetec)
	ON_COMMAND(ID_ONEWIDTH_LINEDETECT, OnOneWidthLineDetect)
	ON_UPDATE_COMMAND_UI(ID_ONEWIDTH_LINEDETECT, OnUpdateOneWidthLineDetect)
	ON_COMMAND(ID_IMAGE_INVERT, OnImageInvert)
	ON_UPDATE_COMMAND_UI(ID_IMAGE_INVERT, OnUpdateImageInvert)
	ON_COMMAND(ID_PTILE_THRESHOLD, OnPtileThreshold)
	ON_UPDATE_COMMAND_UI(ID_PTILE_THRESHOLD, OnUpdatePtileThreshold)
	ON_COMMAND(ID_MORPHOLOGY_THIN, OnMorphologyThin)
	ON_UPDATE_COMMAND_UI(ID_MORPHOLOGY_THIN, OnUpdateMorphologyThin)
	ON_COMMAND(ID_FORM_ANALYSIS, OnFormAnalysis)
	ON_UPDATE_COMMAND_UI(ID_FORM_ANALYSIS, OnUpdateFormAnalysis)
	ON_COMMAND(ID_HISTOGRAM_TYPE, OnHistogramType)
	ON_UPDATE_COMMAND_UI(ID_HISTOGRAM_TYPE, OnUpdateHistogramType)
 	ON_COMMAND(ID_REMOVE_LINE_NOISE, OnRemoveLineNoise)
	ON_UPDATE_COMMAND_UI(ID_REMOVE_LINE_NOISE, OnUpdateRemoveLineNoise)
	ON_COMMAND(ID_IMAGE_HUE, OnImageHue)
	ON_COMMAND(ID_IMAGE_SATURATION, OnImageSaturation)
	ON_COMMAND(ID_IMAGE_VALUE, OnImageValue)
	ON_UPDATE_COMMAND_UI(ID_IMAGE_HUE, OnUpdateImageHue)
	ON_UPDATE_COMMAND_UI(ID_IMAGE_SATURATION, OnUpdateImageSaturation)
	ON_UPDATE_COMMAND_UI(ID_IMAGE_VALUE, OnUpdateImageValue)
	ON_COMMAND(ID_H_S_PLANE, OnHSPlane)
	ON_COMMAND(ID_D_S_V_PLANE, OnSVPlane)
	ON_COMMAND(ID_D_H_V_PLANE, OnHVPlane)
 	ON_COMMAND(ID_2DIMENSION_HISTOGRAM, On2DimensionHistogram)
	ON_UPDATE_COMMAND_UI(ID_2DIMENSION_HISTOGRAM, OnUpdate2DimensionHistogram)
	ON_COMMAND(ID_RGB_HISTOGRAM, OnRgbHistogram)
	ON_COMMAND(ID_HSV_HISTOGRAM, OnHsvHistogram)
	ON_UPDATE_COMMAND_UI(ID_RGB_HISTOGRAM, OnUpdateRgbHistogram)
	ON_UPDATE_COMMAND_UI(ID_HSV_HISTOGRAM, OnUpdateHsvHistogram)
	ON_COMMAND(ID_IMAGE_RED, OnImageRed)
	ON_COMMAND(ID_IMAGE_GREEN, OnImageGreen)
	ON_COMMAND(ID_IMAGE_BLUE, OnImageBlue)
	ON_UPDATE_COMMAND_UI(ID_IMAGE_RED, OnUpdateImageRed)
	ON_UPDATE_COMMAND_UI(ID_IMAGE_GREEN, OnUpdateImageGreen)
	ON_UPDATE_COMMAND_UI(ID_IMAGE_BLUE, OnUpdateImageBlue)
	ON_COMMAND(ID_COLOR_SOBEL, OnColorSobel)
	ON_COMMAND(ID_COLOR_SOBEL_VECTOR, OnColorSobelVector)
	ON_UPDATE_COMMAND_UI(ID_COLOR_SOBEL, OnUpdateColorSobel)
	ON_UPDATE_COMMAND_UI(ID_COLOR_SOBEL_VECTOR, OnUpdateColorSobelVector)
	ON_UPDATE_COMMAND_UI(ID_2DIMENSION_COMBINE, OnUpdate2DimensionCombine)
	ON_COMMAND(ID_2DIMENSION_COMBINE, On2DimensionCombine)
	ON_COMMAND(ID_INDEX_IMAGE, OnIndexImage)
	ON_UPDATE_COMMAND_UI(ID_INDEX_IMAGE, OnUpdateIndexImage)
	ON_COMMAND(ID_CIRCULAR_COLOR_PLANES, OnCircularColorPlanes)
	ON_COMMAND(ID_DIRECTION_NO0, OnDirectionNo0)
	ON_COMMAND(ID_DIRECTION_NO1, OnDirectionNo1)
	ON_COMMAND(ID_DIRECTION_NO2, OnDirectionNo2)
	ON_COMMAND(ID_DIRECTION_NO3, OnDirectionNo3)
	ON_COMMAND(ID_DIRECTION_NO4, OnDirectionNo4)
	ON_COMMAND(ID_DIRECTION_NO5, OnDirectionNo5)
	ON_COMMAND(ID_DIRECTION_NO6, OnDirectionNo6)
	ON_COMMAND(ID_DIRECTION_NO7, OnDirectionNo7)
	ON_COMMAND(ID_DIRECTION_NO8, OnDirectionNo8)
	ON_COMMAND(ID_SOBEL_THINNING, OnSobelThinning)
	ON_UPDATE_COMMAND_UI(ID_SOBEL_THINNING, OnUpdateSobelThinning)
	ON_COMMAND(ID_SAVE_MASK, OnSaveMask)
	ON_COMMAND(ID_REMOVE_BACKGROND, OnRemoveBackgrond)
	ON_UPDATE_COMMAND_UI(ID_SAVE_MASK, OnUpdateSaveMask)
	ON_UPDATE_COMMAND_UI(ID_REMOVE_BACKGROND, OnUpdateRemoveBackgrond)
	ON_COMMAND(ID_ADD_IMAGE, OnAddImage)
	ON_COMMAND(ID_SAVE_ADD_IMAGE, OnSaveAddImage)
	ON_UPDATE_COMMAND_UI(ID_SAVE_ADD_IMAGE, OnUpdateSaveAddImage)
	ON_UPDATE_COMMAND_UI(ID_ADD_IMAGE, OnUpdateAddImage)
	ON_COMMAND(ID_COLLIGATION_THRESHOLD, OnColligationThreshold)
	ON_UPDATE_COMMAND_UI(ID_COLLIGATION_THRESHOLD, OnUpdateColligationThreshold)
	ON_COMMAND(ID_SIMPLE_THRESHOLD, OnSimpleThreshold)
	ON_UPDATE_COMMAND_UI(ID_SIMPLE_THRESHOLD, OnUpdateSimpleThreshold)
	ON_COMMAND(ID_LOG_PREWITT, OnLogPrewitt)
	ON_UPDATE_COMMAND_UI(ID_LOG_PREWITT, OnUpdateLogPrewitt)
	ON_COMMAND(ID_SOBEL_GRAD_OR, OnSobelGradOr)
	ON_UPDATE_COMMAND_UI(ID_SOBEL_GRAD_OR, OnUpdateSobelGradOr)
	ON_COMMAND(ID_SOBEL_RGB, OnSobelRgb)
	ON_COMMAND(ID_SOBEL_YIQ, OnSobelYiq)
	ON_UPDATE_COMMAND_UI(ID_SOBEL_RGB, OnUpdateSobelRgb)
	ON_UPDATE_COMMAND_UI(ID_SOBEL_YIQ, OnUpdateSobelYiq)
	ON_COMMAND(ID_SOBEL_LAB, OnSobelLab)
	ON_UPDATE_COMMAND_UI(ID_SOBEL_LAB, OnUpdateSobelLab)
	ON_COMMAND(ID_IMAGE_Y, OnImageY)
	ON_COMMAND(ID_IMAGE_I, OnImageI)
	ON_COMMAND(ID_IMAGE_Q, OnImageQ)
	ON_COMMAND(ID_IMAGE_L, OnImageL)
	ON_COMMAND(ID_IMAGE_A, OnImageA)
	ON_COMMAND(ID_IMAGE_B, OnImageB)
	ON_UPDATE_COMMAND_UI(ID_IMAGE_Y, OnUpdateImageY)
	ON_UPDATE_COMMAND_UI(ID_IMAGE_I, OnUpdateImageI)
	ON_UPDATE_COMMAND_UI(ID_IMAGE_Q, OnUpdateImageQ)
	ON_UPDATE_COMMAND_UI(ID_IMAGE_L, OnUpdateImageL)
	ON_UPDATE_COMMAND_UI(ID_IMAGE_A, OnUpdateImageA)
	ON_UPDATE_COMMAND_UI(ID_IMAGE_B, OnUpdateImageB)
	ON_COMMAND(ID_INNER_BOUNDARY, OnInnerBoundary)
	ON_COMMAND(ID_OUTER_BOUNDARY, OnOuterBoundary)
	ON_COMMAND(ID_MORPHOLOGY_BOUNDARY, OnMorphologyBoundary)
	ON_COMMAND(ID_AREA_SKELETON, OnAreaSkeleton)
	ON_UPDATE_COMMAND_UI(ID_INNER_BOUNDARY, OnUpdateInnerBoundary)
	ON_UPDATE_COMMAND_UI(ID_OUTER_BOUNDARY, OnUpdateOuterBoundary)
	ON_UPDATE_COMMAND_UI(ID_MORPHOLOGY_BOUNDARY, OnUpdateMorphologyBoundary)
	ON_UPDATE_COMMAND_UI(ID_AREA_SKELETON, OnUpdateAreaSkeleton)
	ON_COMMAND(ID_BLACK_GRAY_TOPHAT, OnBlackGrayTophat)
	ON_UPDATE_COMMAND_UI(ID_BLACK_GRAY_TOPHAT, OnUpdateBlackGrayTophat)
	ON_COMMAND(ID_REMOVE_NOISE, OnRemoveNoise)
	ON_UPDATE_COMMAND_UI(ID_REMOVE_NOISE, OnUpdateRemoveNoise)
	ON_COMMAND(ID_PATTERN_THIN, OnPatternThin)
	ON_UPDATE_COMMAND_UI(ID_PATTERN_THIN, OnUpdatePatternThin)
	ON_COMMAND(ID_2DIMENSION_HISTOGRAM_HV, On2dimensionHistogramHv)
	ON_COMMAND(ID_2DIMENSION_HISTOGRAM_SV, On2dimensionHistogramSv)
	ON_UPDATE_COMMAND_UI(ID_2DIMENSION_HISTOGRAM_HV, OnUpdate2dimensionHistogramHv)
	ON_UPDATE_COMMAND_UI(ID_2DIMENSION_HISTOGRAM_SV, OnUpdate2dimensionHistogramSv)

	ON_COMMAND(ID_CONTOUR_TRACKING,OnContourTracking)
	ON_COMMAND(ID_AREA_PARAMENT_MEASURE,OnAreaParamentMeasure)
 	ON_COMMAND(ID_LINE_CODING,OnLineCoding)
	ON_COMMAND(ID_AREA_MEASURE,OnAreaMeasure)
	ON_COMMAND(ID_SEARCH_AREA_KERNEL,OnSearchAreaKernel)
	ON_COMMAND(ID_LIMIT_EROSION,OnLimitErosion)
	ON_COMMAND(ID_CONDITION_DILATION,OnConditionDilation)
	ON_UPDATE_COMMAND_UI(ID_CONTOUR_TRACKING,OnUpdateContourTracking)
	ON_UPDATE_COMMAND_UI(ID_AREA_PARAMENT_MEASURE,OnUpdateAreaParamentMeasure)
 	ON_UPDATE_COMMAND_UI(ID_LINE_CODING,OnUpdateLineCoding)
	ON_UPDATE_COMMAND_UI(ID_AREA_MEASURE,OnUpdateAreaMeasure)
	ON_UPDATE_COMMAND_UI(ID_SEARCH_AREA_KERNEL,OnUpdateSearchAreaKernel)
	ON_UPDATE_COMMAND_UI(ID_LIMIT_EROSION,OnUpdateLimitErosion)
	ON_UPDATE_COMMAND_UI(ID_CONDITION_DILATION,OnUpdateConditionDilation)
	ON_COMMAND(ID_AUTOMATIC_SELECT,OnAutomaticSelect)
	ON_COMMAND(ID_WHITE_AREA,OnWhiteArea)
	ON_COMMAND(ID_BLACK_AREA,OnBlackArea)
	ON_UPDATE_COMMAND_UI(ID_AUTOMATIC_SELECT,OnUpdateAutomaticSelect)
	ON_UPDATE_COMMAND_UI(ID_WHITE_AREA,OnUpdateWhiteArea)
	ON_UPDATE_COMMAND_UI(ID_BLACK_AREA,OnUpdateBlackArea)
	ON_COMMAND(ID_SAVE_MASK_A, OnSaveMaskA)
	ON_UPDATE_COMMAND_UI(ID_SAVE_MASK_A, OnUpdateSaveMaskA)

	ON_WM_LBUTTONUP()
	ON_WM_LBUTTONDOWN()
	ON_WM_MOUSEMOVE()
	ON_COMMAND(ID_MAKE_MASK, OnMakeMask)
	ON_UPDATE_COMMAND_UI(ID_MAKE_MASK, OnUpdateMakeMask)

	//}}AFX_MSG_MAP
	// Standard printing commands
	ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CImageNView construction/destruction

CImageNView::CImageNView()
{
	// TODO: add construction code here
	HDC		hMemDC;
 
	WindowCanvus.Create(1024,768,24,0);
  	hMemDC = WindowCanvus.GetDC();
 	WindowCanvus.BitBlt(hMemDC,0,0,1024,768,0,0,WHITENESS);
  	WindowCanvus.ReleaseDC();

 	for (int i=0;i<256;i++) DoubleTab[i]=1.0*i/255;

	m_nFlag=0;
}

CImageNView::~CImageNView()
{
}

BOOL CImageNView::PreCreateWindow(CREATESTRUCT& cs)
{
	// TODO: Modify the Window class or styles here by modifying
	//  the CREATESTRUCT cs

	return CView::PreCreateWindow(cs);
}

/////////////////////////////////////////////////////////////////////////////
// CImageNView drawing

void CImageNView::OnDraw(CDC* pDC)
{
	CImageNDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	// TODO: add draw code for native data here

	if (SaveCanvus.IsNull()) return;
	ClearWindow(1);                              
  	WriteTitle(pImg[1],m_FileName,"");           
  	m_nFlag=0;
}

/////////////////////////////////////////////////////////////////////////////
// CImageNView printing

BOOL CImageNView::OnPreparePrinting(CPrintInfo* pInfo)
{
	// default preparation
	return DoPreparePrinting(pInfo);
}

void CImageNView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
	// TODO: add extra initialization before printing
}

void CImageNView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
	// TODO: add cleanup after printing
}

/////////////////////////////////////////////////////////////////////////////
// CImageNView diagnostics

#ifdef _DEBUG
void CImageNView::AssertValid() const
{
	CView::AssertValid();
}

void CImageNView::Dump(CDumpContext& dc) const
{
	CView::Dump(dc);
}

CImageNDoc* CImageNView::GetDocument() // non-debug version is inline
{
	ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CImageNDoc)));
	return (CImageNDoc*)m_pDocument;
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CImageNView message handlers

void CImageNView::OnUpdateGrayImage(CCmdUI *pCmdUI)
{
 	pCmdUI->Enable((!pImg[1]->IsNull())&&(ImageType(pImg[0]))>2);
}

void CImageNView::OnUpdateImageInvert(CCmdUI *pCmdUI)
{
 	pCmdUI->Enable(!pImg[1]->IsNull());
}

void CImageNView::OnUpdateRefresh(CCmdUI *pCmdUI)
{
 	pCmdUI->Enable(!pImg[1]->IsNull());
}

void CImageNView::OnUpdateConservationImage(CCmdUI *pCmdUI)
{
 	pCmdUI->Enable(!pImg[1]->IsNull());
}

void CImageNView::WriteTitle(CImage* pImg,CString FileName,CString str0)  //  顯示帶圖像文件名與分辨率的標題行
{
	int		i,k;
	CString	str, str1;
 	struct	IMAGEPARAMENT P;
	char drive[_MAX_DRIVE];   
	char dir[_MAX_DIR];
	char fname[_MAX_FNAME];   
	char ext[_MAX_EXT];
 
	_splitpath(FileName, drive, dir, fname, ext);   
 
 	CWnd*	pMain = AfxGetMainWnd();
	CMenu*	pMenu = pMain->GetMenu();

	k=ImageType(pImg);                                 
	for (i=0;i<5;i++)
		pMenu->CheckMenuItem(ID_BINARY_IMAGE+i,MF_UNCHECKED);
	pMenu->CheckMenuItem(ID_BINARY_IMAGE+k,MF_CHECKED);  
 
	GetImageParament(pImg,&P);
	if (k==0) P.nBitCount=1;
	else if (k==1) P.nBitCount=4;
	str1.Format(" (%d×%d×%d)", P.nWidth, P.nHeight, P.nBitCount);  
	str.LoadString(AFX_IDS_APP_TITLE);             
 	AfxGetMainWnd()->SetWindowText(str+" - "+ 
		              fname + ext + str0 +str1);   
}

void CImageNView::WorkCanvusToWindow()         
{
	CClientDC	dc(this);
	struct IMAGEPARAMENT P;	
 
	if (SaveCanvus.IsNull()) return;
	GetImageParament(&WorkCanvus,&P);
 	WorkCanvus.BitBlt(dc,0,0,P.nWidth,P.nHeight,0,0,SRCCOPY);
}

void CImageNView::ClearWindow(int flag)
{
  	struct		IMAGEPARAMENT P;
	CClientDC	dc(this);

	GetImageParament(pImg[1],&P);                 
  	dc.SelectStockObject(WHITE_PEN);
	dc.SelectStockObject(WHITE_BRUSH);
	dc.Rectangle(P.nWidth,0,1023,639);
	dc.Rectangle(0,P.nHeight,P.nWidth,639);

	if (pImg[0]->IsNull()) return;
	if (flag)
		WorkCanvusToWindow();
}

void CImageNView::OnRefresh()
{
	if (SaveCanvus.IsNull()) return;

	ClearWindow(0);
	if (ImageType(pImg[0])<2)
		LowTypeToIndex(pImg[1],pImg[0]);
	else
		ImageCopy(pImg[1],pImg[0]);
  	WriteTitle(pImg[1],m_FileName,"");

	WorkCanvusToWindow();
  	m_nFlag=0;
}

void CImageNView::OnConservationImage()
{
 	if (pImg[0]->GetWidth()==pImg[1]->GetWidth())
		ImageCopy(pImg[0],pImg[1]);
  	OnRefresh();
}

//----------------------------------------------------------------------------

void CImageNView::OnGrayImage()                   
{
	CString	str1;

	ColorToGray(pImg[0],pImg[0]);               

 	ImageCopy(pImg[1],pImg[0]);                              
	str1.Format(" 的灰階圖像"); 
 	WriteTitle(pImg[1],m_FileName,str1);                 
   	WorkCanvusToWindow();                      
}

void CImageNView::OnUpdateGtExp(CCmdUI *pCmdUI)
{
 	pCmdUI->Enable((!pImg[1]->IsNull())&&(ImageType(pImg[1])==2));
}

void CImageNView::OnUpdateGtLinear(CCmdUI *pCmdUI)
{
 	pCmdUI->Enable((!pImg[1]->IsNull())&&(ImageType(pImg[1])==2));
}

void CImageNView::OnUpdateGtSqrt(CCmdUI *pCmdUI)
{
 	pCmdUI->Enable((!pImg[1]->IsNull())&&(ImageType(pImg[1])==2));
}

void CImageNView::OnUpdateGtLog(CCmdUI *pCmdUI)
{
 	pCmdUI->Enable((!pImg[1]->IsNull())&&(ImageType(pImg[1])==2));
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧美激情一区二区| 日韩亚洲欧美中文三级| 日本精品免费观看高清观看| 国产一区二区视频在线| 美女视频黄a大片欧美| 久久97超碰色| 激情五月婷婷综合网| 亚洲伊人色欲综合网| 亚洲资源中文字幕| 日韩福利电影在线观看| 九九**精品视频免费播放| 国产精品69久久久久水密桃| 国产在线精品免费| 波多野洁衣一区| 欧美性生交片4| 在线免费视频一区二区| 欧美成人三级电影在线| 国产精品免费久久久久| 亚洲成精国产精品女| 韩国三级电影一区二区| 色婷婷一区二区三区四区| 日韩一区二区影院| 亚洲乱码精品一二三四区日韩在线| 免费的成人av| 色妞www精品视频| 国产天堂亚洲国产碰碰| 免费看欧美女人艹b| 99精品视频在线观看| 欧美精品一区二区三区蜜桃| 一区二区三区在线观看国产| 精品制服美女丁香| 日韩三级视频中文字幕| 亚洲愉拍自拍另类高清精品| 国产成人av一区二区| 欧洲一区在线电影| 国产精品久久精品日日| 国产精品中文欧美| 欧美mv和日韩mv国产网站| 亚洲成人资源在线| 欧美三级韩国三级日本一级| 亚洲欧美国产77777| 成人黄色小视频在线观看| 日韩你懂的电影在线观看| 五月婷婷欧美视频| 日韩视频在线你懂得| 美国一区二区三区在线播放| 欧美日韩精品福利| 中文字幕国产一区二区| 人人狠狠综合久久亚洲| 欧美另类z0zxhd电影| 美国一区二区三区在线播放| 欧美videos中文字幕| 国产经典欧美精品| 一区二区三区在线高清| 678五月天丁香亚洲综合网| 老司机午夜精品| 国产人成亚洲第一网站在线播放| 国产成人精品影视| 一二三区精品福利视频| 欧美日韩中文国产| 国产精品99久久久| 五月激情综合色| 日本一区二区三区免费乱视频 | 国产精品第四页| 日本韩国欧美在线| 美女www一区二区| 一区二区三区四区激情 | 亚洲天堂免费看| 8v天堂国产在线一区二区| 午夜精品久久久久久久久久| 国产精品视频麻豆| 日韩欧美高清一区| 99精品久久99久久久久| 国产呦萝稀缺另类资源| 亚洲高清视频的网址| 国产精品久久久久aaaa| 欧美一区二区三区在线视频 | 日韩一级精品视频在线观看| 99久久精品免费看国产| 久久精品国产免费看久久精品| 亚洲色图制服丝袜| 国产精品久久久久精k8 | 日韩在线a电影| 日韩av在线免费观看不卡| 亚洲少妇中出一区| 亚洲天堂免费看| 一区在线播放视频| 国产人成一区二区三区影院| 欧美xxxxx裸体时装秀| 26uuu国产电影一区二区| 欧美va在线播放| 精品美女在线播放| xnxx国产精品| 日本一区二区在线不卡| 国产精品人妖ts系列视频| 国产精品动漫网站| 亚洲精品亚洲人成人网| 亚洲最大成人网4388xx| 一区二区三区在线免费| 婷婷丁香久久五月婷婷| 免费看欧美美女黄的网站| 国产一区二区电影| 色婷婷综合久久| 制服丝袜av成人在线看| 久久久综合网站| 亚洲私人影院在线观看| 一区二区三区在线免费播放| 蜜桃av一区二区在线观看| 精油按摩中文字幕久久| 91精品办公室少妇高潮对白| 日韩免费在线观看| 一区二区三区四区视频精品免费 | 亚洲激情图片小说视频| 九九久久精品视频| 欧美午夜寂寞影院| 国产日韩三级在线| 久久黄色级2电影| 欧美性淫爽ww久久久久无| 中文子幕无线码一区tr| 精品一区二区日韩| 在线观看91av| 亚洲综合网站在线观看| 丁香一区二区三区| 欧美一区二区三区系列电影| 亚洲精品写真福利| 97久久精品人人做人人爽| 欧美精品一区二区三区一线天视频 | 国内精品国产三级国产a久久| 欧美日韩午夜在线视频| 九九**精品视频免费播放| 欧美另类高清zo欧美| 亚洲国产一区二区三区青草影视| 91在线视频播放地址| 亚洲欧美偷拍三级| 成人免费精品视频| 一二三区精品福利视频| 欧美三级视频在线观看| 理论电影国产精品| 欧美精品一区二区三区在线播放| 国模冰冰炮一区二区| 国产日韩欧美亚洲| 日本高清不卡一区| 国产成人福利片| 国产精品久久久久久久久免费桃花| 99麻豆久久久国产精品免费| 亚洲激情第一区| 欧美日韩和欧美的一区二区| 蜜臀av性久久久久蜜臀aⅴ四虎 | 亚洲免费色视频| 欧美男同性恋视频网站| 久久激情五月激情| 国产日韩欧美精品一区| 国产成人无遮挡在线视频| 欧美xingq一区二区| 国产精品一区二区免费不卡| 日韩毛片高清在线播放| 欧美一区二区三区免费视频 | 91丝袜高跟美女视频| 免费人成网站在线观看欧美高清| 久久一日本道色综合| 欧美网站大全在线观看| 亚洲线精品一区二区三区八戒| 久久九九全国免费| 69堂成人精品免费视频| 99久久99久久精品免费观看| 麻豆91免费观看| 亚洲va天堂va国产va久| 中文字幕一区二区三区乱码在线 | 国产清纯白嫩初高生在线观看91| 欧美日韩国产高清一区二区三区| 99精品国产热久久91蜜凸| 国产精品一区二区久久不卡 | 91国内精品野花午夜精品 | 在线观看精品一区| 国产一区二区视频在线播放| 久久av老司机精品网站导航| 日本亚洲三级在线| 日韩国产欧美在线视频| 肉色丝袜一区二区| 亚洲女与黑人做爰| 亚洲精品少妇30p| 久久精品亚洲精品国产欧美| 亚洲精品一区二区三区香蕉| 久久理论电影网| 综合网在线视频| 亚洲一区二区视频在线| 亚洲大尺度视频在线观看| 亚洲一区二区三区三| 五月综合激情婷婷六月色窝| 久久精品国产亚洲高清剧情介绍| 免费高清视频精品| 懂色av一区二区夜夜嗨| 不卡的av中国片| 日韩免费高清av| 亚洲一区二区三区在线看| 国产九色sp调教91| 欧美日韩精品福利| 亚洲视频网在线直播| 午夜国产不卡在线观看视频| 一本色道久久加勒比精品|