谁能详细解释一下什么是设备环境?

drift1981 2004-11-11 08:42:46
为什么每次都要找到设备环境句柄才能绘图,写字,句柄是一个指针吗/
...全文
296 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
rfa 2004-11-11
  • 打赏
  • 举报
回复
DC,Device Context,中文叫法:设备环境或者设备上下文。
它是个很庞大复杂的东西,一般是和某个显示或者输出环境相关的如窗体,打印机等,它的信息包括显示区域,剪裁区域,PEN,BRUSH,WindowRGN,FONT,坐标系等等等等,它是由Windows来维护的,我们不需要关心它的具体实现,只需要一个指向它的HDC句柄并通过GDI函数来使用它就成。真的想要仔细研究它,那我建议你去买GDI编程方面的书籍看看。
konista 2004-11-11
  • 打赏
  • 举报
回复
句柄是系统给你创建的。
以下来自网上:
什么是“句柄”(handle),handle的本意是把柄,把手的意思。是你与操作系统打交道的
东东。举个通俗的例子,比如你考上了大学,入学后,学校(操作系统)会给你一个学生
证号。注意,这个号码是学校指定的,你无法自选。有了这个号码(学生证,假设一证多用)
享受学校提供的服务:如你就可以去图书馆借书,去食堂吃饭,去教室上课等等。但你不能
到食堂里买啤酒,因为学校不允许这种服务。而在计算机中系统提供的服务就是API调用,
你有了HANDLE,就可以理直气壮地向系统提出调用API的服务。
而指针的权力就大多了,有了指针你可以到处去喝酒,打架,学校(操作系统)管不着,所以
句柄和指针的区别在于句柄只能调用系统提供的服务。而句柄虽然是一个能相互区别的号码,
但与我们普通的ID号又有区别,普通的ID号是可以由程序员自己定义的,而句柄不行,它是
对象生成时系统指定的,是为了区别系统中存在的各个对象,这个句柄不是由程序员符给的
konista 2004-11-11
  • 打赏
  • 举报
回复
句柄和指针的区别在于句柄只能调用系统提供的服务.
每个进程有一个句柄表,是一个数组,数组元素是一结构体,有两个成员,1、句柄 2、该句柄对应内存地址,很多API函数接到你的句柄,根据这个数组,就能找到对应的内核对象首地址。
drift1981 2004-11-11
  • 打赏
  • 举报
回复
up
yuantao 2004-11-11
  • 打赏
  • 举报
回复
不是,设备环境应该指的是一个句柄关联的一个数据结构, 该结构中包含你汇图所在平面的一些参数, 比如影射模式,刷子,画笔等等.
drift1981 2004-11-11
  • 打赏
  • 举报
回复
那么所说的设备环境就是打印机,显示器这些输出设备吗?

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧