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

📄 viewdibview.cpp

📁 vc++实现简单图像编辑器。。。。。。。。。
💻 CPP
📖 第 1 页 / 共 2 页
字号:
	pCmdUI->Enable (!GetDocument()->m_pDib ->IsEmpty ());
//jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj	
}

void CViewDIBView::OnEffectMovevsplit() 
{
//fffffffffffffffffffffffffffffffffffffffff
	CViewDIBDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	pDoc->m_nEffect	=EFFECT_VSPLITMOVE;
	EffectDisplay(pDoc->m_nEffect);

	//jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj		
}

void CViewDIBView::OnUpdateEffectMovevsplit(CCmdUI* pCmdUI) 
{
//fffffffffffffffffffffffffffffffffffffffffffffffffffffffff
	pCmdUI->Enable (!GetDocument()->m_pDib ->IsEmpty ());
//jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj	
}

void CViewDIBView::OnUpdateEffectScandown(CCmdUI* pCmdUI) 
{
//fffffffffffffffffffffffffffffffffffffffffffffffffffffffff
	pCmdUI->Enable (!GetDocument()->m_pDib ->IsEmpty ());
//jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj
}

void CViewDIBView::OnEffectScanhsplit() 
{
//fffffffffffffffffffffffffffffffffffffffff
	CViewDIBDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	pDoc->m_nEffect	=EFFECT_HSPLITSCAN;
	EffectDisplay(pDoc->m_nEffect);

	//jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj		
}

void CViewDIBView::OnUpdateEffectScanhsplit(CCmdUI* pCmdUI) 
{
//fffffffffffffffffffffffffffffffffffffffffffffffffffffffff
	pCmdUI->Enable (!GetDocument()->m_pDib ->IsEmpty ());
//jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj	
}

void CViewDIBView::OnEffectScanleft() 
{
	//fffffffffffffffffffffffffffffffffffffffff
	CViewDIBDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	pDoc->m_nEffect	=EFFECT_SCANLEFT;
	EffectDisplay(pDoc->m_nEffect);

	//jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj	
}

void CViewDIBView::OnUpdateEffectScanleft(CCmdUI* pCmdUI) 
{
//fffffffffffffffffffffffffffffffffffffffffffffffffffffffff
	pCmdUI->Enable (!GetDocument()->m_pDib ->IsEmpty ());
//jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj	
}

void CViewDIBView::OnEffectScanright() 
{
	//fffffffffffffffffffffffffffffffffffffffff
	CViewDIBDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	pDoc->m_nEffect	=EFFECT_SCANRIGHT;
	EffectDisplay(pDoc->m_nEffect);

	//jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj	
}

void CViewDIBView::OnUpdateEffectScanright(CCmdUI* pCmdUI) 
{
//fffffffffffffffffffffffffffffffffffffffffffffffffffffffff
	pCmdUI->Enable (!GetDocument()->m_pDib ->IsEmpty ());
//jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj	
}

void CViewDIBView::OnEffectScanup() 
{
	//fffffffffffffffffffffffffffffffffffffffff
	CViewDIBDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	pDoc->m_nEffect	=EFFECT_SCANUP;
	EffectDisplay(pDoc->m_nEffect);

	//jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj
	
}

void CViewDIBView::OnUpdateEffectScanup(CCmdUI* pCmdUI) 
{
//fffffffffffffffffffffffffffffffffffffffffffffffffffffffff
	pCmdUI->Enable (!GetDocument()->m_pDib ->IsEmpty ());
//jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj	
}

void CViewDIBView::OnEffectScanvsplit() 
{
	//fffffffffffffffffffffffffffffffffffffffff
	CViewDIBDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	pDoc->m_nEffect	=EFFECT_VSPLITSCAN;
	EffectDisplay(pDoc->m_nEffect);

	//jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj	
}

void CViewDIBView::OnUpdateEffectScanvsplit(CCmdUI* pCmdUI) 
{
//fffffffffffffffffffffffffffffffffffffffffffffffffffffffff
	pCmdUI->Enable (!GetDocument()->m_pDib ->IsEmpty ());
//jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj		
}

void CViewDIBView::OnEffectVblind() 
{
//fffffffffffffffffffffffffffffffffffffffff
	CViewDIBDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	pDoc->m_nEffect	=EFFECT_VBLIND;
	EffectDisplay(pDoc->m_nEffect);

//jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj			
}

void CViewDIBView::OnUpdateEffectVblind(CCmdUI* pCmdUI) 
{
//fffffffffffffffffffffffffffffffffffffffffffffffffffffffff
	pCmdUI->Enable (!GetDocument()->m_pDib ->IsEmpty ());
//jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj	
}

void CViewDIBView::OnEffectVraster() 
{
//fffffffffffffffffffffffffffffffffffffffff
	CViewDIBDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	pDoc->m_nEffect	=EFFECT_VRASTER;
	EffectDisplay(pDoc->m_nEffect);

//jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj			
}

void CViewDIBView::OnUpdateEffectVraster(CCmdUI* pCmdUI) 
{
//fffffffffffffffffffffffffffffffffffffffffffffffffffffffff
	pCmdUI->Enable (!GetDocument()->m_pDib ->IsEmpty ());
//jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj	
}

void CViewDIBView::EffectDisplay(int nEffect)
{
	CViewDIBDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	
	CClientDC dc(this);
	CPoint pt=GetScrollPosition();

	if(nEffect==EFFECT_FADE)
	{
		pDoc->m_pDib ->Clear (nEffect,&dc,-pt.x,-pt.y ,16,50);
		pDoc->m_pDib ->Display (nEffect,&dc,-pt.x,-pt.y,16,50);
	}
	else if (nEffect==EFFECT_HBLIND||nEffect==EFFECT_VBLIND)
	{
		pDoc->m_pDib ->Clear (nEffect,&dc,-pt.x,-pt.y ,8,70);
		pDoc->m_pDib ->Display (nEffect,&dc,-pt.x,-pt.y,8,70);
	}
	else if (nEffect==EFFECT_HRASTER||nEffect==EFFECT_VRASTER||
		nEffect==EFFECT_MOSIAC)
	{
		pDoc->m_pDib ->Clear (nEffect,&dc,-pt.x,-pt.y ,16,1);
		pDoc->m_pDib ->Display (nEffect,&dc,-pt.x,-pt.y,16,1);
	}
	else
	{
		pDoc->m_pDib ->Clear (nEffect,&dc,-pt.x,-pt.y ,1,5);
		pDoc->m_pDib ->Display (nEffect,&dc,-pt.x,-pt.y,1,5);
	}
}

void CViewDIBView::OnEffectTrans() 
{
	//fffffffffffffffffffffffffffffffffffffffff
	CViewDIBDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	
	CClientDC dc(this);
	CPoint pt=GetScrollPosition();
	pDoc->m_pDib ->DisplayTransparent (&dc,pt.x,pt.y,RGB(0,255,255));
	//jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj
	
}

void CViewDIBView::OnUpdateEffectTrans(CCmdUI* pCmdUI) 
{
//fffffffffffffffffffffffffffffffffffffffffffffffffffffffff
	pCmdUI->Enable (!GetDocument()->m_pDib ->IsEmpty ());
//jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj		
}


void CViewDIBView::OnGeometricCut() 
{
//ffffffffffffffffffffffffffffffffffffffffff

	CViewDIBDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	CString strWidth,strHeight;

	strWidth.Format ("%d",pDoc->m_pDib ->GetWidth ());
	strHeight.Format ("%d",pDoc->m_pDib ->GetHeight ());

	CSeleCutRectDlg dlg;
	dlg.m_width =strWidth;
	dlg.m_height=strHeight;
	dlg.m_left =0;
	dlg.m_right =atoi(strWidth);
	dlg.m_top=0;
	dlg.m_bottom =atoi(strHeight);

	if(dlg.DoModal ()==IDOK)
	{
		CRect rc;
		rc.left =dlg.m_left ;
		rc.right =dlg.m_right ;
		rc.top =dlg.m_top ;
		rc.bottom =dlg.m_bottom ;
		pDoc->m_pDib ->Cut (rc);
		CDC *pDC=GetDC();
		OnDraw(pDC);
	}


//jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj
}

void CViewDIBView::OnGeometricCrop() 
{
//ffffffffffffffffffffffffffffffffffffffffff

	CViewDIBDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	CString strWidth,strHeight;

	strWidth.Format ("%d",pDoc->m_pDib ->GetWidth ());
	strHeight.Format ("%d",pDoc->m_pDib ->GetHeight ());

	CSeleCutRectDlg dlg;
	dlg.m_width =strWidth;
	dlg.m_height=strHeight;
	dlg.m_left =0;
	dlg.m_right =atoi(strWidth);
	dlg.m_top=0;
	dlg.m_bottom =atoi(strHeight);

	if(dlg.DoModal ()==IDOK)
	{
		CRect rc;
		rc.left =dlg.m_left ;
		rc.right =dlg.m_right ;
		rc.top =dlg.m_top ;
		rc.bottom =dlg.m_bottom ;
		pDoc->m_pDib ->Crop (rc);
		CDC *pDC=GetDC();
		OnDraw(pDC);

		
	}


//jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj	
}

void CViewDIBView::OnGeometricMerge() 
{
//fffffffffffffffffffffffffffffffffffffffffffff
	CViewDIBDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	static char BASED_CODE szFilter[] = "Bitmap Files (*.bmp)|*.bmp";
    CString csName;

	CFileDialog dlg(TRUE,".bmp",NULL,NULL,szFilter,this);
	if (dlg.DoModal ()==IDOK)
	{
		csName=dlg.GetFileName ();
		CDib dibNew;
		CFile fNew(csName,CFile::modeRead   );
		dibNew.Read (&fNew);
		POINT pt;
		pt.x=0;
		pt.y=0;
		pDoc->m_pDib ->Merge (dibNew.m_hDib,pt);
		CDC *pDC=GetDC();
		OnDraw(pDC);

	} 

}

void CViewDIBView::OnGeometricZoom() 
{
//ffffffffffffffffffffffffffffffffffffffffff

	CViewDIBDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	CString strWidth,strHeight;

	strWidth.Format ("%d",pDoc->m_pDib ->GetWidth ());
	strHeight.Format ("%d",pDoc->m_pDib ->GetHeight ());

	CSeleZoomSizeDlg dlg;
	dlg.m_strW =strWidth;
	dlg.m_strH=strHeight;
	
	
	if(dlg.DoModal ()==IDOK)
	{
		int nW =dlg.m_nWidth ;
		int nH =dlg.m_nHeight ;
	
		pDoc->m_pDib ->Zoom (nW,nH);
		CDC *pDC=GetDC();
		OnDraw(pDC);		
	}


//jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj		
}

void CViewDIBView::OnGeometricCanvas() 
{
//ffffffffffffffffffffffffffffffffffffffffff

	CViewDIBDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	CString strWidth,strHeight;

	strWidth.Format ("%d",pDoc->m_pDib ->GetWidth ());
	strHeight.Format ("%d",pDoc->m_pDib ->GetHeight ());

	CSeleCanvasDlg dlg;
	dlg.m_width =strWidth;
	dlg.m_height=strHeight;
	dlg.m_nHeight=atoi(dlg.m_height);
	dlg.m_nWidth=atoi(dlg.m_width);
	
	
	if(dlg.DoModal ()==IDOK)
	{
		int nW =dlg.m_nWidth ;
		int nH =dlg.m_nHeight ;
	    int nPos;
		CString strPos=dlg.m_pos ;
		if (strcmp(strPos,"左上角")==0)
			nPos=LEFT_UP;
		else if (strcmp(strPos,"中上")==0)
			nPos=CENTER_UP;
		else if (strcmp(strPos,"右上角")==0)
			nPos=RIGHT_UP;
		else if (strcmp(strPos,"左中")==0)
			nPos=LEFT_CENTER;
		else if (strcmp(strPos,"中间")==0)
			nPos=CENTER_CENTER;
		else if (strcmp(strPos,"中右")==0)
			nPos=CENTER_RIGHT;  
	    else if (strcmp(strPos,"左下角")==0)
			nPos=LEFT_DOWN;
    	else if (strcmp(strPos,"中下")==0)
			nPos=CENTER_DOWN;
		else if (strcmp(strPos,"右下角")==0)
			nPos=RIGHT_DOWN;				
			
		pDoc->m_pDib ->Canvas (nW,nH,nPos);
		CDC *pDC=GetDC();
		OnDraw(pDC);		
	}


//jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj	
}

void CViewDIBView::OnGeometricRotate() 
{
//ffffffffffffffffffffffffffffffffffffffffff

	CViewDIBDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	pDoc->m_pDib ->Rotate ();
	CDC *pDC=GetDC();
	OnDraw(pDC);		
	

//jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj		
}

void CViewDIBView::OnGeometricFliphorz() 
{
//ffffffffffffffffffffffffffffffffffffffffff

	CViewDIBDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	pDoc->m_pDib ->FlipHorz ();
	CDC *pDC=GetDC();
	OnDraw(pDC);		
	

//jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj		
}

void CViewDIBView::OnGeometricFlipvert() 
{
//ffffffffffffffffffffffffffffffffffffffffff

	CViewDIBDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	pDoc->m_pDib ->FlipVert ();
	CDC *pDC=GetDC();
	OnDraw(pDC);		
	

//jjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjjj	
}

⌨️ 快捷键说明

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