1、BEGIN_MESSAGE_MAP(CJEFFView, CScrollView) /AFX_MSG_MAP(CJEFFView) ON_COMMAND(ID_EROSION, OnErosion) ON_COMMAND(ID_DILATION, OnDilation) ON_COMMAND(ID_OPEN, OnOpen) ON_COMMAND(ID_CLOSE, OnClose) ON_COMMAND(ID_ZAOSHENG, OnZaosheng) ON_COMMAND(ID_BIANYUAN, OnBianyuan) ON_COMMAND(ID_1, On1) ON_COMMAND(I
2、D_2, On2) ON_COMMAND(ID_4, On4) ON_COMMAND(ID_8, On8) ON_COMMAND(ID_DILATION2, OnDilation2) ON_COMMAND(ID_EROSION2, OnErosion2) ON_COMMAND(ID_OPEN2, OnOpen2) ON_COMMAND(ID_CLOSE2, OnClose2) ON_COMMAND(ID_SMOOTH, OnSmooth) ON_COMMAND(ID_RELOAD, OnReload) ON_COMMAND(ID_TIDU, OnTidu) ON_COMMAND(ID_BIAN
3、YUAN_H, OnBianyuanH) ON_COMMAND(ID_QUSE, OnQuse) ON_WM_LBUTTONDOWN() /AFX_MSG_MAP / Standard printing commands ON_COMMAND(ID_FILE_PRINT, CScrollView:OnFilePrint) ON_COMMAND(ID_FILE_PRINT_DIRECT, CScrollView: ON_COMMAND(ID_FILE_PRINT_PREVIEW, CScrollView:OnFilePrintPreview)END_MESSAGE_MAP()/ CJEFFVie
4、w construction/destructionCJEFFView:CJEFFView() / TODO: add construction code here ValidDoc=FALSE; m_i=1;CJEFFView()BOOL CJEFFView:PreCreateWindow(CREATESTRUCT& cs) Modify the Window class or styles here by modifying / the CREATESTRUCT cs return CScrollView:PreCreateWindow(cs);/ CJEFFView drawingvoi
5、d CJEFFView:OnDraw(CDC* pDC) CJEFFDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); add draw code for native data here if (pDoc-lpBitmap) ValidDoc=TRUE; nWidth=pDoc-nWidth; nHeight=pDoc-nHeight; lpBits=pDoc-lpBits; lpPoints=pDoc-lpPoints; BITMAPINFOHEADER bmi; bmi.biSize=sizeof(BITMAPINFOHEADER); bmi.b
6、iWidth=nWidth; bmi.biHeight=nHeight; bmi.biPlanes=1; bmi.biBitCount=24; bmi.biCompression=BI_RGB; bmi.biSizeImage=0; bmi.biXPelsPerMeter=0; bmi.biYPelsPerMeter=0; bmi.biClrUsed=0; bmi.biClrImportant=0; StretchDIBits(pDC-m_hDC,0,0,nWidth*m_i,nHeight*m_i,0,0,nWidth,nHeight, lpBits, (BITMAPINFO *)&bmi,
7、 DIB_RGB_COLORS, SRCCOPY); OnInitialUpdate() CScrollView:OnInitialUpdate(); CSize sizeTotal; calculate the total size of this view sizeTotal.cx =2000; sizeTotal.cy = 1700; SetScrollSizes(MM_TEXT, sizeTotal);/ CJEFFView printingOnPreparePrinting(CPrintInfo* pInfo) / default preparation return DoPrepa
8、rePrinting(pInfo);OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/) add extra initialization before printingOnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/) add cleanup after printing/ CJEFFView diagnosticsAssertValid() constAssertValid();Dump(CDumpContext& dc) constDump(dc);CJEFFDoc* CJEFFView
9、:GetDocument() / non-debug version is inline ASSERT(m_pDocument-IsKindOf(RUNTIME_CLASS(CJEFFDoc); return (CJEFFDoc*)m_pDocument;#endif /_DEBUG/ CJEFFView message handlers/二值形态学:腐蚀OnErosion() int *lpMarks=new intnWidth*nHeight; int x,y,x1,y1; int count;/中间变量 for(y=1;ynHeight-1;y+) for(x=1;xnWidth-1;x+) count=1; for(y1=-1;y12;y1+) for(x1=-1;x1PutPoint(); Invalidate();膨胀OnDilation() count=0; if (Out(x+x1,y+y1)=0)/以(x,y)为中心的九个点是否有黑色的像素点 count=1;/若有记为一
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1