在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 做了跟多事情,讓你面對這個控件可以把它看作一個值而已。