1. 程式人生 > >MFC中control變數與value變數的區別

MFC中control變數與value變數的區別

    control型變數是這個控制元件所屬類的一個例項(物件)可以通過這個變數來對該控制元件進行一些設定。control型變數可以獲得控制元件的例項,通過這個變數,你可以操縱控制元件。而value只是用來傳遞資料,不能對控制元件進行其它的操作。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型別,我們可以對這個控制元件直接進行訪問;

       Value   就是一個變數,control   就是一個控制元件。主要的區別也就是變數和控制元件之間的區別,雖然他們實質上都是一樣的。 可是選擇   Value   ,MFC   會把控制元件的內容對應到一個變數上。除非你用其他API取得這個 
控制元件進行操作,否則,就是一個變數而已。主要的用途是   UpdateData,進行資料讀寫。而作為控制元件,就是把這個東西直接對應到了一個控制元件物件上去,比如   CEdit   物件。你可以直接用這個物件來進行操作。