VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1025|回复: 7

如此绘制位图有何不可,为何客户区一片漆黑

[复制链接]

3

主题

29

帖子

22.00

积分

新手上路

Rank: 1

积分
22.00
发表于 2020-1-4 22:50:01 | 显示全部楼层 |阅读模式
void CClipTest2View::OnDraw(CDC* pDC)
{
        CClipTest2Doc* pDoc = GetDocument();
        ASSERT_VALID(pDoc);
       
         // 从剪贴板获取位图
        HBITMAP hBmp = CCopyScr::GetFromClip(this->GetSafeHwnd());

        BITMAP bm;
        GetObject(hBmp, sizeof(BITMAP), &bm);

        CBitmap bmpDraw;
        bmpDraw.CreateBitmap(bm.bmWidth, bm.bmHeight, bm.bmPlanes, bm.bmBitsPixel, bm.bmBits);

        CDC memDC;//定义一个兼容DC
        memDC.CreateCompatibleDC( pDC );//创建兼容DC

        CBitmap* pbmpOld = memDC.SelectObject( &bmpDraw );//保存原有DDB,并选入新DDB入DC
        pDC->BitBlt( 0, 0, bm.bmWidth, bm.bmHeight, &memDC, 0, 0, SRCCOPY );

        memDC.SelectObject( pbmpOld );//选入原DDB
}
回复

使用道具 举报

0

主题

9

帖子

7.00

积分

新手上路

Rank: 1

积分
7.00
发表于 2020-1-4 22:51:02 | 显示全部楼层
bmpDraw.CreateBitmap(bm.bmWidth, bm.bmHeight, bm.bmPlanes, bm.bmBitsPixel, bm.bmBits);
create完了以后需要loadbitmap啊,要么从文件读取,要么加载资源中的位图ID
回复

使用道具 举报

3

主题

29

帖子

22.00

积分

新手上路

Rank: 1

积分
22.00
 楼主| 发表于 2020-1-4 23:09:02 | 显示全部楼层
kkedward :Create之后还要Load干什么,不是一个就可以吗。
我是Web方式下的,要从剪贴板读取位图转成Base64,然后存入后台数据库。因此文件和资源都不行。
回复

使用道具 举报

3

主题

29

帖子

22.00

积分

新手上路

Rank: 1

积分
22.00
 楼主| 发表于 2020-1-4 23:21:01 | 显示全部楼层
主要是从一些图形上截取一部分,然后画上几笔,然后保存到数据库
回复

使用道具 举报

3

主题

29

帖子

22.00

积分

新手上路

Rank: 1

积分
22.00
 楼主| 发表于 2020-1-11 20:45:02 | 显示全部楼层
有没有人知道什么原因?资源和文件我都会画,现在想从剪贴板剪下来画。
回复

使用道具 举报

0

主题

57

帖子

27.00

积分

新手上路

Rank: 1

积分
27.00
发表于 2020-1-13 12:09:01 | 显示全部楼层
DEBUG看看你是否真的成功获取了位图文件
回复

使用道具 举报

0

主题

59

帖子

43.00

积分

新手上路

Rank: 1

积分
43.00
发表于 2020-1-14 17:00:02 | 显示全部楼层
你选入的是你创建的位图,当然是一片漆黑
回复

使用道具 举报

0

主题

11

帖子

10.00

积分

新手上路

Rank: 1

积分
10.00
发表于 2020-1-26 19:09:01 | 显示全部楼层
BITMAP bm;
GetObject(hBmp, sizeof(BITMAP), &bm);

CBitmap bmpDraw;
bmpDraw.CreateBitmap(bm.bmWidth, bm.bmHeight, bm.bmPlanes, bm.bmBitsPixel, bm.bmBits);

以上换成
CBitmap bmpDraw;
bmpDraw.Attach(hBmp);
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表