MFC學習筆記(8)

2021-05-21 21:52:32 字數 1523 閱讀 6460

新增設定對話方塊

1.插入對話方塊資源

2.建立乙個對話方塊類

3.給編輯框關聯乙個unit型變數作為使用者設定值

4.新增乙個用來顯示對話方塊的選單項

5.給選單項新增命令響應

6.在view中新增對話方塊標頭檔案

7.構造乙個對話方塊類物件然後呼叫物件的成員函式domodal()顯示對話方塊

8.通過domodal的返回值判斷使用者選擇

9.注意對話方塊物件的生命週期導致的設定無法儲存問題

radio控制項

通過在第乙個radio控制項的屬性設為group講之後的若干控制項設為一組

第乙個控制項關聯的變數就會代表著一組radio中的選擇

建立顏色對話方塊

ccolordialog dlg;

dlg.domodal();

dlg.m_cc.rgbresult儲存了使用者選擇的顏色

建立字型對話方塊

cfontdialog dlg;

if (dlg.domodal() == idok)

dlg.m_cf.lplogfont.lffacename儲存了字型的名字

畫圖例項功能

捕獲使用者改變設定的時候的訊息

給每個控制項新增en_change響應函式

給每個函式中呼叫invalidate();

在對話方塊類中增加wm_paint響應函式  在其中畫圖

注意螢幕座標與程式座標的轉換

screentoclient(rect);

*當乙個控制項和乙個變數關聯的時候,如果想讓資料交換,需要呼叫

updatedata();

改變對話方塊控制項背景顏色及文字顏色

在對話方塊類中增加wm_ctlcolor響應函式

在對話方塊類中建立乙個畫刷  在wm_ctlcolor響應函式中返回

//在響應函式中對某個控制項的背景色進行控制

if(pwnd->getdlgctrlid()==idc_line_style)

改變按鈕的顏色需要  重寫cbutton類中的drawitem函式

並將按鈕與新建的cbutton類的物件關聯

在視窗中貼圖

1.建立位圖

cbitmap bitmap;

bitmap.loadbitmap(idb_bitmap1);

2.建立相容dc

cdc dccompatible;

dccompatible.createcompatibledc(pdc);

3.將位圖選到相容dc中

dccompatible.selectobject(&bitmap);

4.將相容dc中的點陣圖貼到當前dc中

pdc->bitblt(rect.left,rect.top,rect.width(),rect.height(),&dccompatible,0,0,srccopy);

bitblt按照1:1拷貝  無法使位圖自動隨視窗大小伸縮

stretchblt解決這個問題後者僅比前者多了2個引數

在ondraw中做貼圖閃爍比較大   而在onerasebkgnd中閃爍較小

MFC學習筆記( )

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

MFC學習筆記

1.oncreate函式目前來看只執行了一次 2.對於隱藏的this指標,不是類中的函式成員。當在類的非靜態成員函式中訪問類的非靜態成員的時候,編譯器會自動將物件本身的位址作為乙個隱含引數傳遞給函式 也就是說,即使你沒有寫上this指標,編譯器在編譯的時候也是加上this的,它作為非靜態成員函式的隱...

MFC 學習筆記

作業 用單文件檢視完成左鍵使圓圈變小,右鍵使圓圈變大,按住ctrl的同時移動滑鼠使圓圈跟著移動。document處理頁面的資料 view呈現和互動。on wm lbuttonup等滑鼠訊息帶著uint nflags 掩碼 引數,記錄滑鼠訊息的同時的附加資訊 比如ctrl或shift鍵 在initin...