MFC控件添加變量時,control和value的區別
最近學習vc,又被這個問題搞糊涂了,上網查了下,終于搞清楚了。
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="hustwjz";
UpdateData(FALSE); //可以向控件傳遞數據
UpdateData(TRUE); //可以從控件獲得數據
獲得輸入數據后可以進行相應操作.以下是寫文件用到的,把輸入的內容寫入文件
UpdateData(TRUE);
student.age=m_age;
strcpy(student.name,m_char);
CString fPath;
fPath=GetAppPath();
IniFileHandle->m_FileName.Format(_T("%s"),fPath+_T("student"));
IniFileHandle->OpenFile(1);
IniFileHandle->Serialize(student);
IniFileHandle->CloseFile();
可以使用成員變量來代替某個控件,當控件發生變化時,該成員變量的值也發生變化;ClassWizard增加成員變量的時候,選擇value類型可以創建一個包含由用戶來輸入控件文本和控件狀態的成員變量;選擇Control類型,我們可以對這個控件直接進行訪問;
control就是控件,可以得到長度 高度 是不是可用 是不是可見
value是個字符串,跟控件綁定在一起,可以通過UpdateData(TRUE/FALSE)相互更新;
Value 就是一個變量
control 就是一個控件。
主要的區別也就是 變量 和 控件之間的區別,雖然他們實質上都是一樣的。
可是選擇 Value ,MFC 會把控件的內容對應到一個變量上。除非你用其他API取得這個
控件進行操作,否則,就是一個變量而已。主要的用途是 UpdateData。進行數據讀些。
而作為控件,把就是把這個東西直接對應到了一個控件對象上去,比如 CEdit 對象。
你可以直接用這個對象來進行操作。熟悉了之后,就是一個怎么用怎么方便的問題。從其
實質來說,我認為沒有什么區別,都是控件。不表示,你選了value ,其控件就不存在,
只是說選擇value ,MFC的wizard 做了跟多事情,讓你面對這個控件可以把它看作一個值而已。
浙公網安備 33010602011771號