學習筆記 MFC 中的CDC類

2021-07-09 22:46:54 字數 798 閱讀 5731

cdc類定義的是裝置上下文物件的類,有稱裝置環境物件類。cdc物件提供處理

顯示器或印表機等裝置上下文

的成員函式,以及處理與

視窗客戶區對應的顯示上下文

的成員.

cdc類及其派生類也是mfc中的乙個大類,和繪圖相關。

通過cdc物件的成員函式進行所有的繪圖。

cdc類操控圖形大體分兩類,一類是「畫畫兒」,另乙個是「貼圖」。前者好比你拿著畫筆、畫刷自己描線、塗染料,後者則是用現成的畫兒通過貼、拼來完成畫作。

cdc類最為常用的幾個子類是:cpaintdc類,cclientdc類,cwindowdc類。

cclientdc,cpaintdc的區別:cpaintdc的物件一般用在onpaint內以響應windows訊息wm_paint,自動完成繪製,在整個視窗內進行重畫,維持原有視窗完整性。cclientdc應用在非響應windows訊息wm_paint的情況下,進行實時繪製,繪製的區域內被重畫。

cwindowdc與cclientdc,cpaintdc的區別:cwindowdc可在非客戶區繪製圖形,而cclientdc,cpaintdc只能在客戶區繪製圖形。cwindowdc下座標原點是在螢幕的左上角,cclientdc,cpaintdc下座標原點是在客戶區的左上角。 舉乙個位圖貼圖的例子。

新建乙個基於對話方塊的mfc程式,在資源編輯器中插入乙個位圖資源,id號為idb_bitmap1,在對話方塊類的onpaint()處理函式中加入:

void cxxdialog::onpaint()

在MFC中用CDC類畫2個同心圓

cdc pdc 建立cdc物件指標 pdc getdc 初始化pdc cpen greenpen ps solid,1,rgb 0,255,0 poldpen 建立個綠色畫筆,ps solid為線型別,1位線寬,poldpen儲存原畫筆 poldpen pdc selectobject greenp...

關於CDC在非控制項類中的使用

在非cstatic的派生類中,由於進行圖形的繪製的話,我們需要對該類傳入乙個cdc以便於繪畫。這是因為非cstatic等控制項類無法自己產生onpaint這類的訊息,因此需要借傳入的cdc進行回執,然後回執在其他的記憶體上,最後達到繪圖的效果。但是,在這裡面有乙個問題,當我們直接傳入cdc的時候,往...

MFC學習筆記( )

選單響應順序 view類 文件類 框架類 應用程式類 訊息分類 標準訊息 除wm command之外,所有以wm 開頭的訊息。從cwnd派生的類,都可以接收到這類訊息。命令訊息 來自選單 加速鍵或工具欄按鈕的訊息。這類訊息都以wm command呈現。在mfc中,通過選單項的標識 id 來區分不同的...