MFC控制項第一講 DC程式設計

2022-03-20 20:12:48 字數 1365 閱讀 7910

什麼是dc,dc有什麼用.

dc成為裝置描述符表. dc的作用就是可以進行繪製. 比如我們的視窗都是繪製出來的.  dc可以簡單理解為.沒乙個視窗程式都有一塊記憶體用於繪製.我們只需要獲取這塊記憶體即可.

mfc 中 的cdc類 就是封裝了hdc 跟gdi函式. 並且派生出了四個不同場景下的類.

注意hdc 則是windows中真正的dc. 配合gdi函式進行操作繪製的. mfc只不過封裝了一下.

派生出來的類常用的有三個.

1.cpaintdc 使用者在視窗的客戶區畫圖. 僅限與onpaint處理程式.   onpaint 就是乙個訊息處理函式.

2.cclieentdc 使用者在視窗客戶區畫圖.除了 onpaint外的任何處理程式.   除了訊息處理函式都可以進行操作

3.cwindowsdc 用於在視窗內任意地方畫圖.包括非客戶區.                  任何乙個地方都可以編寫**操作.

比如我們的mfc框架中已經給我們寫好了這個處理函式.

**如下.

void

ccdcdlg::onpaint()

else

}

我們也可以自己寫乙個.比如使用win32的知識畫一段字.

hdc hdc = ::getdc(m_hwnd);              //

用於繪製的dc

paintstruct ps; //

儲存dc的資訊結構體

::beginpaint(m_hwnd, &ps);

::drawtext(hdc, text(

"hello

"), wcslen(text("

hello

")), crect(200, 200, 200, 200), dt_singleline);//

單行顯示

::endpaint(m_hwnd, &ps);

如果是mfc下.則用cpaintdc 傳入this即可.

cclientdc則是可以不用再onpaint中使用.我們可以按鈕點選就使用了.

void

ccdcdlg::onbnclickedbutton1()

上方**則是我們在客戶區畫個圓. 在我們點選之後.

我們的cwindowsdc是一樣的.只不過比cclientdc用的更廣一點.

關於gdi函式.我們可以下乙個mfc類庫詳解. 有中文版的.或者你查詢msdn都可以.輸入你想用的dc類.則會出現對應函式.

常見的屬性可以用下圖表示.並且有對應的方法

我們可以通過這些方法設定跟獲取.

第一講 遞迴

遞迴 recursion 程式呼叫自身的程式設計技巧。遞迴滿足2個條件 1 有反覆執行的過程 呼叫自身 2 有跳出反覆執行過程的條件 遞迴出口 一 階乘 include using namespace std int recursive int i int main main 三 斐波那契數 inc...

矩陣第一講

特殊矩陣1.零矩陣 所有矩陣的所有元素全都為0 2.對角矩陣 乙個n階方陣除對角線上的所有元素都為0 2.數量矩陣 對角矩陣中對角線上元素為常數,3.單位矩陣 數量矩陣中對角線上上常數為1.4.行階梯矩陣 乙個矩陣的每個非零行 元素不全為零 的非零首元 第乙個非零元素 所在列的下標隨著行標的增大,並...

第一講 遞迴

遞迴 recursion 程式呼叫自身的程式設計技巧。遞迴滿足2個條件 1 有重複執行的過程 呼叫自身 2 有跳出重複執行過程的條件 遞迴出口 一 階乘 include using namespace std int recursive int i int main main 三 斐波那契數 inc...