MFC菜鳥筆記 一

2021-04-13 06:07:16 字數 1753 閱讀 4238

第一章、控制項使用

新增變數

如果我們要在程式中訪問對話方塊中的控制項,就必須給這些控制項分別新增變數。所謂新增變數,就是給程式中要用到的控制項物件定義乙個與之關聯的變數作為控制項的**。以後用到該控制項時,訪問其**變數即可。就是說,乙個變數代表乙個具體的控制項物件。例如,要獲得使用者在編輯框中輸入的內容,就得給編輯框新增變數,通過呼叫該變數的相關函式即可獲得編輯框的輸入內容。

右擊控制項,class wizard->member variables->add variable...選擇要新增的控制項新增變數。 

按紐控制項的型別control和value的區別

control:為該控制項生成乙個對應的物件(如cedit物件,cbutton物件),用來控制該控制項,呼叫控制項對應方法等。 

value:為該控制項生成乙個相應的變數來反應其內容,如可用cstring來對應cedit控制項,其用ddx(資料交換),ddv(資料驗證)來保證該控制項內容與該變數的一致性。

control就是關聯控制項類物件,如cedit,cbutton

value就是關聯基本型別的變數,如uint,cstring

關聯control類物件可以利用物件對控制項進行操作,關聯value類變數就只能對控制項取值

新增**

右擊控制項,選擇class wizard->message maps->add function...選擇控制項物件,選擇控制項訊息型別(即由何種操作觸發的訊息)->edit code。

列表框的用法

列表框的初始化操作在視窗的初始化函式oninitdialog()中完成。

在工作空間視窗中,選擇classview選項卡,然後展開工程的dlg類,開啟初始化函式oninitdialog()。

在oninitdialog()的「//todo:add extra initialization here」一行的下面、return的前面新增初始化語句:(列表框變數名).addstring("內容");

函式addstring()的功能是在列表框中新增乙個選項。但程式執行時列表框中顯示出來的選項次序,並不一定和我們新增時的次序一致,而是按照字典的次序排列的,要想和我們新增時的次序一致。要做如下修改。

將sort選項去掉。

列表框的響應函式也是如此,右擊控制項,從message欄中設定。

涉及函式

getwindowtext()

編輯框類cedit的成員函式,用來獲得編輯框輸入的內容,並把內容存到乙個字串變數中。

atof()

該函式將數字字串轉化為浮點型數值。

_gcvt()

跟atof相反,用來把數值轉化為數字字串。

updatedata()

該函式的作用與引數的值有關:

引數值為false時,更新視窗,用控制項變數的值更新控制項的內容。

引數值為true時,將控制項內容對映到對應變數中。enablewindow()

cbutton的基類cwnd的函式,true表示按鈕狀態為enable,false表示設定成disable狀態。

format()

cstring類的函式,用來把資料轉換成cstring型別的字串。

release

用debug生成的exe可執行檔案通常比較大,如果想得到較小的可執行檔案,可以用release。具體做法:(1)選擇選單欄的build->batch build命令。

(2)單擊build按鈕,系統會進行release編譯。

MFC學習筆記(一)

案例1 響應視窗始終 輸出字元 如下 crect rectclient,recttitle int nwidth 100 int nheight 40 getclientrect rectclient 得到當前客戶區的尺寸 recttitle.left rectclient.width nwidth...

MFC 學習筆記一

通過近段時間的mfc學習,對訊息機制有了更深入的理解,訊息鏈的建立,runtimeclass的理解中,對於類的組織鏈的精妙設計很嘆服,這些主要是在看mfc深入淺出的過程中體會到的,整個學習過程中,感覺記住mfc的類層次圖是非常重要和必需的。下面就對自己所學習的rtti 執行時期型別辨識 進行整理 首...

菜鳥筆記之zTree(一)

獲取當前的樹 var treeobj fn.ztree.getztreeobj tree 獲取當前選中的結點集合 var nodes treeobj.getselectednodes 根據tid獲取選中的某個結點 因為就乙個,所以默 認選中陣列的第乙個 var node ztree.getnodeb...