天天看點

MFC Edit控件 error:“DDX_Control”: 不能将參數 3 從“int”轉換為“CWnd &”

在使用mfc的edit control等控件時可能你會遇到這樣的問題:error:“ddx_control”:

不能将參數 3 從“int”轉換為“cwnd &”或error:“ddx_control”: 不能将參數 3 從“cstring”轉換為“cwnd &”.這是什麼原因呢?

一.淺析

檢視資料和搜尋後,我也看到了一些具體分析:

在一個對話框程式裡,有個按鈕idc_button_ok。ctrl+w (vc6.0)或ctrl+shift+x進入類視圖,在member variables頁輕按兩下清單裡的idc_button_ok就會有個對話框出來,中間的這個組合框裡一般列出2種:

一種是資料型比如cstring和int;另一種就是控件型cbutton。

前者資料型是該控件的标題内容,後者就是控件本身綁定的一個對象。ddx_contral是後者型,_control是控件類型,_text是資料型。修改如下:( ddx_函數是資料交換函數)

ddx_control(pdx, idc_button1, m_botton1);改成

ddx_text(pdx,idc_button1,m_botton1);(或删除該語句)

二.深度分析

它出現該錯誤的原因是什麼呢?

我發現在類向導添加控件變量int cstring時(ctrl+shitf+x)

應該先選擇value類别,而不是control強制該變量類型為int型,然後在變量類型中選擇int、cstring型.在自定義變量名.這樣強制的轉換就會造成具體的錯誤.

MFC Edit控件 error:“DDX_Control”: 不能将參數 3 從“int”轉換為“CWnd &”

如上圖所示添加一個edit control(編輯框)控件,同時定義該控件為cstring類型,變量名為m_edit5,在類别中有control和value,選擇value。

同時好像在button控件中我嘗試選擇value,好像隻有control類别,因為有的控件很特殊,如按鈕,它本身隻能定義為button類型,具體控件具體分析。

希望上面的文章能幫助大家,高手略過。同時淺析中參考了下面部落格的内容:

<a target="_blank" href="http://hi.baidu.com/wangguang246/item/8d4cad9f03625bdf1e427128">http://hi.baidu.com/wangguang246/item/8d4cad9f03625bdf1e427128</a>

深度分析是自己的見解,錯誤的地方見諒!

(2013-6-8-夜2點 by:eastmout)