关于DC与hDC是什么东西
2016-05-01 00:55
183 查看
关于dc到底是个啥玩意
他是一个和硬件驱动打交道的东西。
我们知道,不同的显卡设备,或者打印机设备,有不同的驱动。
而不同的驱动,显卡的厂商给我们写了不同的代码。
然后这些代码被封装成了函数。
可是,当你在一台电脑上写代码的时候,你需要根据这台电脑上的显卡驱动的函数写你想画出什么
当你在另一台电脑上写代码的时候,你需要在另一个显卡驱动的函数来写你想画什么
两个函数根本不一样,你每次换台电脑,电脑上有不同的显卡
你就要重新学一次如何写这个显卡驱动的函数,很蛋疼。
于是有人给他统一了设备
当你在你的窗口下创建一个DC的时候,这个DC就作为显示设备的上下文,也就是这个DC的结构里,保存了该设备的环境信息,比如显卡的信息。
然后你在DC结构里指定画笔,制定画笔的大小,颜色
然后GDI根据你的画笔颜色,根据你的画笔大小,在“显示设备”上按照相应的方式,显示出你的这幅画。
当你在打印机上创建一个DC的时候,这个在打印机上创建的DC就是你的打印机设备的上下文,也就是这个DC结构里,保存了打印机的信息,用来告诉系统,然后系统用打印机如何操作。
然后你再打印机的结构里制定你要什么画笔。
接着GDI根据你的打印机的DC信息,然后在“打印机设备”上按照相应的方式,打印出你这幅画
这就好比你要在纸上画画,可是你不会美术,这个时候,有一个全能的人来了,你告诉他你要在纸上画什么,然后告诉他你的笔是什么颜色,是什么大小,等等,然后这个全能的人给你在纸上画了一幅画。
然后你想在石头上画画,可是石头上画画你更不会,然后这个全能的人又来了,你告诉他在石头上画什么,然后笔的样式等等,接着你就得到了一幅在石头上的画。
那么hdc是什么呢?
hdc就是一个句柄,用它来标示dc这个全能的人,你可以用hdc来这个句柄来控制这个全能的人。
那么准确的概念是什么呢?
DC是一个设备描述表
该设备描述表里记录了与设备相关的信息
比如对于显示器来说,记录了显示器的尺寸、分辨率,还有当前选择的画笔、画刷、字体等GDI对象的信息。
然后我们利用HDC窗口上画一个东西
就好比我们命令全能的人在xx上画个东西
他是一个和硬件驱动打交道的东西。
我们知道,不同的显卡设备,或者打印机设备,有不同的驱动。
而不同的驱动,显卡的厂商给我们写了不同的代码。
然后这些代码被封装成了函数。
可是,当你在一台电脑上写代码的时候,你需要根据这台电脑上的显卡驱动的函数写你想画出什么
当你在另一台电脑上写代码的时候,你需要在另一个显卡驱动的函数来写你想画什么
两个函数根本不一样,你每次换台电脑,电脑上有不同的显卡
你就要重新学一次如何写这个显卡驱动的函数,很蛋疼。
于是有人给他统一了设备
当你在你的窗口下创建一个DC的时候,这个DC就作为显示设备的上下文,也就是这个DC的结构里,保存了该设备的环境信息,比如显卡的信息。
然后你在DC结构里指定画笔,制定画笔的大小,颜色
然后GDI根据你的画笔颜色,根据你的画笔大小,在“显示设备”上按照相应的方式,显示出你的这幅画。
当你在打印机上创建一个DC的时候,这个在打印机上创建的DC就是你的打印机设备的上下文,也就是这个DC结构里,保存了打印机的信息,用来告诉系统,然后系统用打印机如何操作。
然后你再打印机的结构里制定你要什么画笔。
接着GDI根据你的打印机的DC信息,然后在“打印机设备”上按照相应的方式,打印出你这幅画
这就好比你要在纸上画画,可是你不会美术,这个时候,有一个全能的人来了,你告诉他你要在纸上画什么,然后告诉他你的笔是什么颜色,是什么大小,等等,然后这个全能的人给你在纸上画了一幅画。
然后你想在石头上画画,可是石头上画画你更不会,然后这个全能的人又来了,你告诉他在石头上画什么,然后笔的样式等等,接着你就得到了一幅在石头上的画。
那么hdc是什么呢?
hdc就是一个句柄,用它来标示dc这个全能的人,你可以用hdc来这个句柄来控制这个全能的人。
那么准确的概念是什么呢?
DC是一个设备描述表
该设备描述表里记录了与设备相关的信息
比如对于显示器来说,记录了显示器的尺寸、分辨率,还有当前选择的画笔、画刷、字体等GDI对象的信息。
然后我们利用HDC窗口上画一个东西
就好比我们命令全能的人在xx上画个东西
相关文章推荐
- 如何重装TCP/IP协议
- Windows 8 官方高清壁纸欣赏与下载
- 谁是桌面王者?Win PK Linux三大镇山之宝
- 对《大家都在点赞 Windows Terminal,我决定给你泼一盆冷水》一文的商榷
- Windows Clang开发环境备忘
- 从Windows系统下访问Linux分区相关软件
- 肯特·贝克:改变人生的代码整理魔法
- 对《大家都在点赞 Windows Terminal,我决定给你泼一盆冷水》一文的商榷
- Windows下搭建本地SVN服务器
- 你应该学习哪种编程语言?
- 使用Windows原生命令一键清空剪贴板
- 利用开源软件打造自己的全功能远程工具
- Windows 8虚拟机不能全屏的解决方法
- Visual Studio 2012 示例代码浏览器 - 数以千计的开发示例近在手边,唾手可得
- Visual Studio 2012 示例代码浏览器 - 数以千计的开发示例近在手边,唾手可得
- [转]我们需要一种其他人能使用的编程语言
- 微软镜像下载