2 luyangever luyangever 于 2016.04.20 13:50 提问

MFC中bitblt拷贝的问题

我需要在mfc中拷贝原图再在相同的位置把图片粘贴回来,我自己写的小程序也能够正确做到,但是不知道为啥在我修改别人的程序时粘贴时就出了问题。
无操作原图:
图片说明
当我进行简单的自身拷贝自身时:
pDC->BitBlt(LpRect.left +100, LpRect.top, 200, 1688, pDC, LpRect.left, LpRect.top, SRCCOPY);
图片:
图片说明
但是当我复制后再粘贴时:
CDC curveDC;
CBitmap bitmap,*pOldBitmap;
curveDC.CreateCompatibleDC(rectinfo.testDC);
bitmap.CreateCompatibleBitmap(rectinfo.testDC,200,1688);
pOldBitmap = curveDC.SelectObject(&bitmap);

curveDC.BitBlt(0, 0, 200, 1688, pDC, LpRect.left, LpRect.top, SRCCOPY); 
pDC->BitBlt(LpRect.left +100, LpRect.top, 200, 1688,    &curveDC, 0,0, SRCCOPY);

图片说明
想不明白为什么会出现黑色框中多余的线条,是我复制的时候哪里出错了?
程序在http://share.weiyun.com/53c6af81c21f26b95d21027b0eda2c22

安装步骤为
解压后最好放在e盘根目录下
1 解压后运行Graphic.sln编译通过后,以管理员身份运行cmd,
根据具体目录注册ocx,例如 regsvr32 E:\GraphicOcx\Graphic\Debug\Graphic.ocx
2 运行test目录下的WindowsFormsApplication1.sln并编译成功
2 在Graphic的vs中,项目->属性->配置属性->调试->命令
导入test目录下的exe路径,例如E:\GraphicOcx\Test\WindowsFormsApplication1\
WindowsFormsApplication1\bin\Debug\WindowsFormsApplication1.exe
3 如果界面出现则表示运行成功。如果不成功提示模板错误等
则修改GraphicOcx\Graphic\Debug下的Graphic.ini中DataPath路径和TemplateName路径为自己的实际路径

我提问的代码在Curve.cpp的1100行左右

1个回答

xxmvzeetbb
xxmvzeetbb   2016.10.05 23:51

代码如下: @Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (action.equals(Intent.ACTION_CLOSE_SYSTEM_DIALOGS)) {
String reason = intent.getStringExtra(SYSTEM_DIALOG_REASON_KEY);
if (reason != null) {
// Log.e(TAG, "action:" + action + ",reason:" + reason);
if (mListener != null) {
if (reason.equals(SYSTEM_DIALOG_REASON_HOME_KEY)) {
// 短按home键

mListener.onHomePressed();
} else if (reason
.equals(SYSTEM_DIALOG_REASON_RECENT_APPS)) {
// 长按home键

mListener.onHomeLongPressed();
} else if (SYSTEM_DIALOG_REASON_ASSIST.equals(reaso

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!