工控编程吧
标题:
127上位机VC MFC实现图片的剪切效果
[打印本页]
作者:
qq263946146
时间:
2015-12-27 22:14
标题:
127上位机VC MFC实现图片的剪切效果
(, 下载次数: 0)
上传
点击文件名下载附件
127上位机VC MFC实现图片的剪切效果
功能展示
图片进行剪切 粘贴操作是图像编辑软件必须的功能,我们当前例程简单快速的实现了图片的剪切功能,点击剪切按钮,将原图指定区域进行剪切,再将剪切的部分复制到右侧显示,效果如图;
要点提示
我们当前是利用区域类CRgn 创建一个剪切区域,然后使用控件的CDC将创建的剪切区域选中到源图中填充为黑色或白色,表示被剪切,再将创建的剪切区域选中到目标区域,显示被剪切的部分;
具体实现过程,可以实例部份
实现功能
1.新建基于对话框的应用程序
2.先添加一幅位图,作为操作演示用,拖拽两图片控件;
一控件ID改为IDC_BMP关联变量CStatic m_Bmp,类型修改为位图,位图ID设置为刚加载的位图;
另一控件ID改为IDC_BMPCUT,类型设置为位图,关联变量 CStatic m_BmpCut;
3.添加按钮,关联函数,实现图片剪切效果
void CGkbc8Dlg::OnButton1()
{
CBitmap Bitmap;
Bitmap.Attach(m_Bmp.GetBitmap());//附加位图句柄
BITMAP bmp;
Bitmap.GetBitmap(&bmp);
//创建一个剪切区域
CRgn m_rgn;
m_rgn.CreateEllipticRgn(10,10,bmp.bmWidth-10,bmp.bmHeight-10);
CDC* pDC = m_BmpCut.GetDC();
CDC* pBMPDC = m_Bmp.GetDC();
//选中剪切区域
pDC->SelectClipRgn(&m_rgn,RGN_COPY );
pDC->BitBlt(0,0,bmp.bmWidth,bmp.bmHeight,pBMPDC,0,0,SRCCOPY);
pBMPDC->SelectClipRgn(&m_rgn,RGN_COPY );
pBMPDC->BitBlt(0,0,bmp.bmWidth,bmp.bmHeight,pDC,0,0,BLACKNESS);
Bitmap.Detach();
m_BmpCut.ReleaseDC(pDC);
m_Bmp.ReleaseDC(pBMPDC);
}
复制代码
我们来演示下功能实现的整个过程
[iqiyi]http://player.video.qiyi.com/81215ba11ede4fbc0c37bf70713784cf/0/0/w_19rt7sh0uh.swf-albumId=5098676709-tvId=5098676709-isPurchase=0-cnId=12[/iqiyi]
(, 下载次数: 0)
上传
点击文件名下载附件
[note]1[/note]
欢迎光临 工控编程吧 (https://www.gkbc8.com/)
Powered by Discuz! X3.4