VC++ 使用BitBlt函数显示位图「建议收藏」

VC++ 使用BitBlt函数显示位图「建议收藏」BitBlt函数该函数对指定的源设备环境区域中的像素进行位块(bit_block)转换,以传送到目标设备环境。原型:BOOLBitBlt(HDChdcDest,intnXDest,intnYDest,intnWidth,intnHeight,HDChdcSrc,intnXSrc,intnYSrc,DWORDdwRop);参数:hdcDest:指向目标设备环境的句柄。nXDe…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

BitBlt 函数

该函数对指定的源设备环境区域中的像素进行位块(bit_block)转换,以传送到目标设备环境。

原型:  
BOOL BitBlt(
    HDC  hdcDest,
    int  nXDest,  int  nYDest,  int  nWidth,  int  nHeight,
    HDC  hdcSrc,
    int  nXSrc,  int  nYSrc,
    DWORD  dwRop);

参数:    
hdcDest:指向目标设备环境的句柄。
nXDest、nYDest:指定目标矩形区域左上角的X轴和Y轴逻辑坐标
nWidth、nHeight:指定源和目标矩形区域的逻辑宽度和逻辑高度。
hdcSrc:指向源设备环境的句柄。
nXSrc、nYSrc:指定源矩形区域左上角的X轴和Y轴逻辑坐标。
dwRop:指定光栅操作代码。这些代码将定义源矩形区域的颜色数据,如何与目标矩形区域的颜色数据组合以完成最后的颜色。下面列出了一些常见的光栅操作代码:
 
BLACKNESS
表示使用与物理调色板的索引0相关的色彩来填充目标矩形区域,(对缺省的物理调色板而言,该颜色为黑色)。

DSTINVERT
表示使目标矩形区域颜色取反。

MERGECOPY 
表示使用布尔型AND(与)操作符将源矩形区域的颜色与特定模式组合一起。

MERGEPAINT
通过使用布尔型OR(或)操作符将源矩形区域的颜色取反后与目标矩形区域的颜色合并。

NOTSRCCOPY
将源矩形区域颜色取反,拷贝到目标矩形区域。

NOTSRCERASE
使用布尔类型的OR(或)操作符组合源和目标矩形区域的颜色值,然后将合成的颜色取反。

PATCOPY
将特定的模式拷贝到目标位图上。

PATINVERT
通过使用布尔型XOR(异或)操作符将源和目标矩形区域内的颜色合并。

PATPAINT
通过使用布尔型OR(或)操作符将源矩形区域取反后的颜色值与特定模式的颜色合并。然后使用OR(或)操作符将该操作的结果与目标矩形区域内的颜色合并。

SRCAND
通过使用布尔型AND(与)操作符来将源和目标矩形区域内的颜色合并。

SRCCOPY
将源矩形区域直接拷贝到目标矩形区域。

SRCERASE
通过使用布尔型AND(与)操作符将目标矩形区域颜色取反后与源矩形区域的颜色值合并。

SRCINVERT
通过使用布尔型XOR(异或)操作符将源和目标矩形区域的颜色合并。

SRCPAINT
通过使用布尔型OR(或)操作符将源和目标矩形区域的颜色合并。

WHITENESS
使用与物理调色板中索引1有关的颜色填充目标矩形区域。(对于缺省物理调色板来说,这个颜色就是白色)。
 

win7, vc6;新建单文档工程;引入一个位图资源;出现下图错误不管;

VC++ 使用BitBlt函数显示位图「建议收藏」

代码;

void CWeituView::OnDraw(CDC* pDC)
{
	CWeituDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	// TODO: add draw code for native data here
	CBitmap bitmap;
	bitmap.LoadBitmap(IDB_BITMAP1);
	BITMAP bt;
	CDC mendc;
	bitmap.GetBitmap(&bt);
	mendc.CreateCompatibleDC(NULL);
	mendc.SelectObject(&bitmap);
	pDC->BitBlt(0,0,bt.bmWidth,bt.bmHeight,&mendc,0,0,SRCCOPY);
}

加载位图效果如下;

VC++ 使用BitBlt函数显示位图「建议收藏」

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/180318.html原文链接:https://javaforall.net

(0)
上一篇 2022年10月19日 下午12:00
下一篇 2022年10月19日 下午12:16


相关推荐

  • 孙鑫java基础视频教程_孙鑫老师JAVA无难事视频教程 最适合java入门学习打基础的课程 附源码讲义 12课…

    孙鑫java基础视频教程_孙鑫老师JAVA无难事视频教程 最适合java入门学习打基础的课程 附源码讲义 12课…课程介绍由孙鑫老师亲自授课录制。内容涵盖面广,从入门到精通,授课通俗易懂,分析问题独到精辟,学员通过本套光盘的学习,能够快速掌握Java编程语言,成为Java高手。由孙鑫老师亲自授课录制。内容涵盖面广,从入门到精通,授课通俗易懂,分析问题独到精辟,学员通过本套光盘的学习,能够快速掌握Java编程语言,成为Java高手。从自学者很难弄明白的Java环境配置开始讲解,一步步引领你成为Java高手。2、…

    2022年5月13日
    56
  • 一次阿里笔试

    一次阿里笔试时间2020年2月5日主题阿里一面:笔试/代码面时长一个小时前置条件已经历电话面试,约定好笔试时间其它社招、在线笔试结果通过题目类型并发、很简单的算法题题目及当时自己提交的答案1、(JDK1.8)线程A打印a,线程B打印l,线程C打印i,三个线程交替打印,各打印102次,alialiali……publicclassThreadP…

    2022年5月10日
    47
  • Okhttp学习及封装

    Okhttp学习及封装Okhttp1.学习Okhttp2.OkHttp的封装1.学习Okhttp需要导入依赖implementation’com.squareup.okhttp3:okhttp:3.12.1’四个按钮需要写入布局get请求,post请求,下载文件,上传文件别忘了加入SD卡权限,网络权限privatevoidinitView(){get=(Button)…

    2022年10月18日
    4
  • jointjs使用总结

    jointjs使用总结jointjs 使用总结由于项目需要接触了 jointjs 不得不说这玩意儿很强大 但是全英文的文档也让人很头疼 下面就阐述一下我对于 jointjs 的粗浅认识吧 1 首先演示一下如何创建一个基础图形 要使用 jointjs 首先要引入相应的 js 和 css 文件 还有一些依赖 lt DOCTYPEhtml gt lt htmllang en gt lt head amp

    2026年3月18日
    2
  • pip安装、卸载依赖包的命令

    pip安装、卸载依赖包的命令1.【下载】python-mpipinstall–upgradepip2.【指定下载】python3-mpipinstallpip==20.0.2

    2022年10月16日
    4
  • JavaSE综合项目演练

    JavaSE综合项目演练光阴似箭日月如梭,大家学习已经有了一段时间了,转眼间,从刚开始如何配置JDK已经到了现在快学完网络编程了。学了这么多,眼看就要进入下一个阶段了,数据库编程了,那么在进入下个阶段前,我们来完成一个综合性比较强的结业项目,告别JavaSE阶段,学完JavaSE,大家已经对编程这块相信已经有了一个很深的理解,但是仅仅是JavaSE还是不够的,我们还需要学习更多的,更全面知识才足以在接下来的生活中过五关斩…

    2022年5月1日
    45

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号