亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
91精品国产91久久久久久一区二区| 国产欧美久久久精品影院| 欧美一级久久久久久久大片| 国产精品免费人成网站| 亚洲成人精品在线观看| 成人午夜激情在线| 日韩一区二区电影在线| 一区二区三区在线免费视频| 国产成人av一区| 欧美一级片免费看| 亚洲一区二区av在线| eeuss鲁片一区二区三区 | 蜜臀国产一区二区三区在线播放| 成人综合婷婷国产精品久久蜜臀| 日韩午夜电影av| 天天综合色天天| 欧美日韩色综合| 一区二区三区久久| 色综合天天天天做夜夜夜夜做| 久久久亚洲精品一区二区三区| 日本不卡中文字幕| 777精品伊人久久久久大香线蕉| 亚洲品质自拍视频网站| 99精品视频在线免费观看| 国产欧美日韩综合精品一区二区| 国产一区二区按摩在线观看| 日韩欧美激情一区| 麻豆精品在线播放| 日韩一区和二区| 麻豆成人久久精品二区三区红| 欧美久久久久久久久中文字幕| 一区二区三区在线观看网站| 91女神在线视频| 一区二区三区免费| 欧美巨大另类极品videosbest | 狠狠色综合播放一区二区| 日韩一区和二区| 国内外成人在线视频| 欧美一级理论性理论a| 裸体歌舞表演一区二区| 日韩精品在线网站| 久草这里只有精品视频| 国产三级精品三级在线专区| 国产v日产∨综合v精品视频| 国产欧美一区二区精品性色| 99re热这里只有精品视频| 一区二区三区中文在线| 91精品国产麻豆国产自产在线| 蜜臀久久久99精品久久久久久| 欧美精品一区二区久久婷婷 | 久久香蕉国产线看观看99| 国产精品一区久久久久| 中文av一区二区| 欧美最新大片在线看 | 成人免费的视频| 亚洲欧美aⅴ...| 91精品国产综合久久久久久久久久| 麻豆精品一区二区综合av| 中文字幕成人网| 欧美日韩一区成人| 精品中文av资源站在线观看| 国产日韩三级在线| 欧美伊人久久久久久久久影院| 日韩国产精品久久| 中文字幕欧美国产| 欧美三级日韩三级国产三级| 亚洲国产一区二区三区| 久久婷婷国产综合国色天香| 91影视在线播放| 毛片av一区二区三区| 国产精品久久久久久久久快鸭 | 色爱区综合激月婷婷| 免费观看成人鲁鲁鲁鲁鲁视频| 亚洲国产精品精华液2区45| 在线影院国内精品| 国产一区二区三区国产| 亚洲激情综合网| 欧美精品一区二区久久婷婷| 色哟哟欧美精品| 国产乱码精品一区二区三区av| 亚洲精品中文字幕乱码三区| 精品国产欧美一区二区| 91福利国产成人精品照片| 激情偷乱视频一区二区三区| 亚洲免费观看高清| 国产三级精品视频| 欧美成人伊人久久综合网| 91国内精品野花午夜精品| 国产一区二区导航在线播放| 丝袜美腿亚洲一区| 亚洲精品国产无套在线观| 久久婷婷国产综合精品青草 | 久久精品理论片| 亚洲成a天堂v人片| 亚洲卡通欧美制服中文| 久久婷婷色综合| 精品久久久久一区| 7777精品伊人久久久大香线蕉| 97久久人人超碰| 成人听书哪个软件好| 国产原创一区二区| 蜜桃在线一区二区三区| 视频一区二区不卡| 一区二区三区日韩精品| 亚洲精品免费在线观看| 国产精品福利一区二区| 国产日韩一级二级三级| 久久影院视频免费| 精品欧美久久久| 精品欧美一区二区久久| 精品美女在线播放| 日韩欧美综合一区| 91麻豆精品国产91久久久| 欧美日韩精品三区| 欧美日韩一区二区三区不卡| 一本一道久久a久久精品综合蜜臀| 国产91精品一区二区麻豆亚洲| 国产精品 欧美精品| 国产盗摄一区二区| fc2成人免费人成在线观看播放| heyzo一本久久综合| 91性感美女视频| 在线观看欧美精品| 欧美日韩在线播| 欧美一区欧美二区| 精品免费国产二区三区| 国产午夜精品久久久久久免费视| 久久久久国产精品厨房| 国产精品理伦片| 一片黄亚洲嫩模| 日韩电影在线一区二区| 久久国产精品一区二区| 国产福利一区二区三区视频在线 | 亚洲婷婷在线视频| 亚洲三级在线观看| 污片在线观看一区二区| 热久久免费视频| 激情av综合网| 91偷拍与自偷拍精品| 无吗不卡中文字幕| 亚洲精品免费在线| 亚洲日穴在线视频| 亚洲成人av免费| 国产一区二区91| 91在线视频在线| 欧美日韩一区视频| 日韩欧美国产一区在线观看| 国产成人综合亚洲91猫咪| 亚洲一二三四在线| 亚洲精品va在线观看| 亚洲精品日韩一| 玉米视频成人免费看| 亚洲精品国久久99热| 亚洲天堂a在线| 亚洲免费资源在线播放| 亚洲精品视频观看| 亚洲综合久久久久| 亚洲国产一区二区a毛片| 五月婷婷综合网| 日本成人中文字幕在线视频| 久久9热精品视频| 国产成人在线电影| 99久久伊人久久99| 91久久国产最好的精华液| 欧美性欧美巨大黑白大战| 欧美美女喷水视频| 日韩午夜精品电影| 久久精品在这里| 亚洲青青青在线视频| 亚洲成人久久影院| 精品一区二区三区免费毛片爱| 国产成人av在线影院| 成人av动漫在线| 在线观看91视频| 欧美一卡二卡三卡| 久久精品在这里| 亚洲一区二区三区中文字幕| 视频一区二区国产| 国产精品一区二区久激情瑜伽 | 国产精品888| 92精品国产成人观看免费 | 26uuu色噜噜精品一区二区| 久久精品人人爽人人爽| 国产精品久久久一区麻豆最新章节| 亚洲日本在线a| 日本美女一区二区三区视频| 国产精品一区在线观看你懂的| 在线观看国产一区二区| 欧美草草影院在线视频| 国产精品黄色在线观看| 免费一级片91| 91在线国产福利| 精品久久久久久久久久久久久久久久久 | 欧美精品一区二区久久久| 国产精品理伦片| 免费不卡在线观看| 91视频免费观看| www成人在线观看| 天天综合天天做天天综合| hitomi一区二区三区精品|