天天看點

【MFC】控件與變量——updata函數&&control和value的差別

在MFC程式設計中 

很多控件都要有對應的變量存儲它的值,以實作代碼讀取和改變變量的值,完成代碼和控件的互動

MFC中 常通過ClassWizard為控件添加和綁定對應的變量及變量類型(不同類型的控件所能綁定的變量類型是有限制的 )

控件所能綁定的變量類型大方向分兩種 control和value

control型變量是這個控件所屬類的一個執行個體(對象)可以通過這個變量來對該控件進行一些設定。而value隻是用來傳遞資料,不能對控件進行其它的操作

control型變量可以獲得控件的執行個體,通過這個變量,你可以操縱控件

value型變量僅僅可以獲得該控件的public型變量

如果你添加了一個m_CtrlEdit的control型變量你可以調用控件支援的所有函數,如:

m_CtrlEdit.GetStyle(...)

獲得控件的輸入内容或者說文本内容:

CString str_name;

m_CtrlEdit.GetWindowText(str_name);

MessageBox(str_name,"提示",0);

而value型變量一般用于向控件傳遞資料,如:變量為CString 類型的 m_Str   m_Str="LosinueriS";  

簡而言之 control型變量如名字一樣能提供操作級别的功能 大而全 而value變量提供用于資料傳遞的變量級别功能

當我們定義一個變量為value類型時,我們的代碼隻能對變量進行操作,那麼如何讓控件的值與變量進行同步呢?那就要用到我們的Updata()函數

Updata(true):将控件内容裝入控件變量  即使用者改變了控件的值後通過該函數實作變量的同步改變

Updata(false):将控件變量的值更新控件

Updata():重新整理對話框

總之

control就是控件,可以得到長度   高度   是不是可用   是不是可見等

value是個字元串,跟控件綁定在一起,可以通過Update(TRUE/FALSE)互相更新;

Value   就是一個變量

control   就是一個控件。

主要的差別也就是     變量     和     控件之間的差別,雖然他們實質上都是一樣的。 

可是選擇   Value   ,MFC   會把控件的内容對應到一個變量上。除非你用其他API取得這個 

控件進行操作,否則,就是一個變量而已。主要的用途是   Update 進行資料讀寫。 

而作為控件,把就是把這個東西直接對應到了一個控件對象上去,比如   CEdit   對象。 

你可以直接用這個對象來進行操作。熟悉了之後,就是一個怎麼用怎麼友善的問題。從其 

實質來說,我認為沒有什麼差別,都是控件。不表示,你選了value   ,其控件就不存在, 

隻是說選擇value   ,MFC的wizard   做了跟多事情,讓你面對這個控件可以把它看作一個值而已。