关于DC和SelectObject()函数的理解
2011-11-02 14:04
387 查看
在GDI中,DC(Device context)是一个非常重要的概念。
有的书中,将DC翻译为设备描述表(《Windows 程序设计 第五版》作者Charles Petzold),
也有的书将DC翻译为设备上下文。
到底什么是DC?
用现实中的例子来理解可能更容易些。
如果你喜欢画画,你得先准备了画布,画笔,颜料……
画画的环境搭建好了,你就可以画画了。
这个画画的环境,就是DC。
在图形环境下,一切都是画出来的,所以,你要准备好一个DC,才能在屏幕上画画。——写字也是画画。
在画画的环境中,有哪些对象呢?
画布——GDI对象之一:区域
画笔——GDI对象之一:画笔
颜料盒——GDI对象之一:调色板
如果要在画笔上写字的话,写什么样的字体呢?方正字体?徐静蕾字体?——字体也是GDI对象之一。
有的画笔比较粗,专用来刷大面积背景色的,这是刷子——GDI对象之一:刷子
如果你不想画了,只想把别人画好的画,贴到你的画布上,这也是可以的。——GDI对象之一:位图。
所以,这里就有6种GDI对象可以用于DC。
现在开始画画了,你拿起了一只笔。——在Windows环境里,这叫选择了一个画笔对象:使用SelectOBject函数。当然,如果你没带笔也没关系,Windows为你准备了几只画笔,你可以这样申请系统提供的缺省画笔:hPen = GetStockObject(WHITE_PEN);
如果你画着画着,觉得手中的笔用着不爽,可以换一只啊,没关系的。——依旧是SelectObject()换笔。
若是画完一部分大树,准备画蓝色的天空,当你画完天空后继续画另一部分大树你得需要把画笔的颜色换回原先画大树的颜色。——你需要用SelectObject(m_pOldPoint)选回原先的颜色。
当然,如果你走出了画室,别忘了把你的画笔清除掉,要不画室里全是笔啊,刷子啊,太乱了。——DeleteObject()
有的书中,将DC翻译为设备描述表(《Windows 程序设计 第五版》作者Charles Petzold),
也有的书将DC翻译为设备上下文。
到底什么是DC?
用现实中的例子来理解可能更容易些。
如果你喜欢画画,你得先准备了画布,画笔,颜料……
画画的环境搭建好了,你就可以画画了。
这个画画的环境,就是DC。
在图形环境下,一切都是画出来的,所以,你要准备好一个DC,才能在屏幕上画画。——写字也是画画。
在画画的环境中,有哪些对象呢?
画布——GDI对象之一:区域
画笔——GDI对象之一:画笔
颜料盒——GDI对象之一:调色板
如果要在画笔上写字的话,写什么样的字体呢?方正字体?徐静蕾字体?——字体也是GDI对象之一。
有的画笔比较粗,专用来刷大面积背景色的,这是刷子——GDI对象之一:刷子
如果你不想画了,只想把别人画好的画,贴到你的画布上,这也是可以的。——GDI对象之一:位图。
所以,这里就有6种GDI对象可以用于DC。
现在开始画画了,你拿起了一只笔。——在Windows环境里,这叫选择了一个画笔对象:使用SelectOBject函数。当然,如果你没带笔也没关系,Windows为你准备了几只画笔,你可以这样申请系统提供的缺省画笔:hPen = GetStockObject(WHITE_PEN);
如果你画着画着,觉得手中的笔用着不爽,可以换一只啊,没关系的。——依旧是SelectObject()换笔。
若是画完一部分大树,准备画蓝色的天空,当你画完天空后继续画另一部分大树你得需要把画笔的颜色换回原先画大树的颜色。——你需要用SelectObject(m_pOldPoint)选回原先的颜色。
当然,如果你走出了画室,别忘了把你的画笔清除掉,要不画室里全是笔啊,刷子啊,太乱了。——DeleteObject()
相关文章推荐
- 关于DC和SelectObject()函数的理解
- 关于DC和SelectObject()函数的理解
- Vc中关于DC(设备环境函数(Device Context))的理解
- Vc中关于DC(设备环境函数(Device Context))的理解
- Vc中关于DC(设备环境函数(Device Context))的理解
- (转)关于DC和SelectObject()函数
- python open函数关于w+ r+ 读写操作的理解
- 时间片轮转调度算法的提及和关于fork函数执行父,子进程先后顺序的理解
- 关于函数指针的理解
- 关于函数指针的一些理解与其他相关内容的联想
- 关于函数名和函数指针的理解
- 关于静态变量和函数粗浅理解(很粗,很浅)
- 关于Python在函数中接收元组和列表的理解
- 【matlab】关于uiwait和uiresume两个函数的理解及用途
- python-关于函数间参数传递问题(注意理解,很容易混淆)
- 关于openCV getRotationMatrix2D 函数中平移向量的理解
- 关于函数指针的理解
- C++中关于构造函数调用次序的一道经典例题及对虚函数构造顺序的理解
- 关于C语言中main()函数的理解
- 谈谈关于angularjs指令中complie函数和link函数的理解