MFC 控制項中control和value的區別

2021-06-19 05:11:31 字數 1470 閱讀 2331

最近學習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); //可以從控制項獲得資料  

獲得輸入資料後可以進行相應操作.以下是寫檔案用到的,把輸入的內容寫入檔案

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

MFC 關於mfc中控制項禁用和狀態判斷

bool enablewindow bool benable true 判斷控制項是否可用可以呼叫 cwnd iswindowenable函式 bool iswindowenable iswindowenabled 函式用於判斷指定的視窗是否允許接受鍵盤或滑鼠輸入。函式原型 bool iswindo...

MFC中Cedit控制項

為了讓cedit控制項顯示聊天資訊,像求求一樣展現出來,要提前設定 1 vertical scroll bar 設定為 true,顯示垂直滾動條 2 visible 設定為 true 3 want true 設定為 true 4 multiline 設定為 true 將cedit控制項新增變數為m ...

MFC中的控制項

mfc的各種控制項使用 靜態控制項,包括,靜態文字和分組框,預設id都是idc static.按鈕控制項 原形按鈕,記住要加group屬性.register 宣告為暫存器變數 explicit 禁止自動轉換 mutable修飾的變數在常函式中也可以被修改了 組合框和列表框控制項 控制項類是ccomb...