關於DC和SelectObject()函式的理解

2021-06-01 09:45:06 字數 1004 閱讀 1728

在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和SelectObject()函式的理解

如果你畫著畫著,覺得手中的筆用著不爽,可以換乙隻啊,沒關係的。依舊是selectobject 換筆。若是畫完一部分大樹,準備畫藍色的天空,當你畫完天空後繼續畫另一部分大樹你得需要把畫筆的顏色換回原先畫大樹的顏色。你需要用selectobject m poldpoint 選回原先的顏色。當然,如果你走...

關於DC和SelectObject()函式的理解

分類 gdi c c mfc 2011 11 02 14 04 1561人閱讀收藏 舉報windows圖形 在gdi中,dc device context 是乙個非常重要的概念。有的書中,將dc翻譯為裝置描述表 windows 程式設計 第五版 作者charles petzold 也有的書將dc翻譯...

OC和DC的比較

1 將要傳送的資料分裝在模組 module 中,不同的模組可盛裝不同的資料,不同的模組又可集合在一起,形成以組 group 為單位的模組組 2 在module和group組中,使用者可根據實際需要傳送有關模組或組的資訊 通過module info byte和group info byte,或priv...