新增設定對話方塊
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...