位图和 DC 有什么特别之处?
作者:BlogUpdater |
时间:2023-08-01 |
浏览:942 |
评论已关闭 条评论
相信设备上下文 (DC, Device Context) 对你来说,应该很熟悉。
基本工作方式是,你可以通过调用 SelectObject 来将画笔(Pen),画刷(Brush),字体(Font)和位图(Bitmap)等这些对象选入设备上下文中,但是,这里的位图对象,相对其他 GDI 对象,有一点特殊。
此话怎讲?
因为,如果你仔细观察下上面说的这些对象,只有位图是可修改的(Modifiable)。
画笔,画刷和字体在它们创建之后都是不能再修改了。
但位图就不一样了:在 DC 中选择的位图会随着你绘制到其中而发生更改。
如果将这个位图选入到多个 DC,这意味着:从一个 DC 写入位图会秘密地在另一个 DC 中更改它,这对 DC 来说不是一件好事。
所以,让我们看看,你可以选择画笔,画刷和字体到多个 DC 中,但不能使用位图执行此操作。你觉得这个是巧合吗?你再细品一下。
有图为证,如下:
总结
本文的核心观点是:应用程序不能一次将单个位图选择到多个 DC 中。
GDI 这套图形绘制引擎,相对于新出来的 DirectX 来说,属实有点老了。
但廉颇虽老,但还是行的。
最后
Raymond Chen的《The Old New Thing》是我非常喜欢的博客之一,里面有很多关于Windows的小知识,对于广大Windows平台开发者来说,确实十分有帮助。
本文来自:《What’s so special about bitmaps and DCs?》
最近我写了个东西
正如你们所知道的,拓扑梅尔智慧办公平台(Topomel Box)是一款绿色软件,主要面向经常使用电脑的朋友。它提供了各种提升办公效率的小功能,同时操作上尽可能地简单方便。
我想:你值得拥有。
如需转载,请注明来自:拓扑梅尔智慧办公平台 | TopomelBox 官方站点
- 下一篇: 古老的新玩法:使用命令行做些简单的计算
- 上一篇: CS_SAVEBITS 这个样式有什么作用?
相关推荐
- VS Code中的CMake工具新功能速览
- Posted on 06月17日
- WinXP: 说道说道那些小小的覆盖图标
- Posted on 01月14日
- 为什么我的对话框创建失败了?菜鸟错误1
- Posted on 12月19日
- 深入理解 LockWindowUpdate: 该函数的作用
- Posted on 12月25日
评论已关闭。