double CDlgWallDraw::GetWallWidth()
{
double dWallWidth;
CString strSam;
m_edtWallWidth.GetWindowText(strSam);
dWallWidth=_tstof(strSam);
return dWallWidth;
}
這是獲取編輯框值的函式,除錯跑到GetWindowText那里strSam根本沒變啊,一直是空的,求教。
非模視窗可以正常獲取值,改成模態的就出錯了
uj5u.com熱心網友回復:
有沒有 UpdateData(TRUE);uj5u.com熱心網友回復:
系結控制元件型別變數需要Updatedata嗎?
我改成double直接拿著用了,但這個GetWindowText還是沒搞明白。
uj5u.com熱心網友回復:
系結變數的辦法同樣需要UpdateData(TRUE);
UpdateData(TRUE);
UpdateData(FALSE);
要分清
uj5u.com熱心網友回復:
m_edtWallWidth 有用DDX_Control 關聯么? 設定斷點查看可以直接用 GetDlgItemText(IDC_EDITXXX, strSam); 試試看
uj5u.com熱心網友回復:
關聯的變數用向導直接創建.uj5u.com熱心網友回復:
感覺像沒有DDX_Control關聯,建議直接用ID試試,GetDlgItemText(ID)->GetWindowText(strSam);
uj5u.com熱心網友回復:
直接用GetDlgItemText(IDC_EDITXXX, strSam);MFC中最丑陋的就是UpdateData了,誰寫的狗屎函式,我去。
uj5u.com熱心網友回復:
看一下4樓知道,是否對控制元件關聯了控制元件變數uj5u.com熱心網友回復:
不要關聯變數,直接用GetDlgItemText(IDC_EDITXXX, strSam);
uj5u.com熱心網友回復:
就是因為系結了變數, 所以才需要update, 從界面更新到變數, 從變數更新的界面.uj5u.com熱心網友回復:
void CTestDlg::OnBtnAdd(){
int num1, num2, num3;
char ch1[10], ch2[10], ch3[10];
GetDlgItem(IDC_EDIT1)->GetWindowText(ch1,10);
GetDlgItem(IDC_EDIT2)->GetWindowText(ch2,10);
num1 = atoi(ch1);
num2 = atoi(ch2);
num3 = num1 + num2;
itoa(num3,ch3,10);
GetDlgItem(IDC_EDIT3)->SetWindowText(ch3);
}
參照這一例子,上面沒有說到關鍵點,關鍵點是傳參錯誤,人家要兩個引數,你給一個引數,沒有傳出來的值,你的程式自然無解了!
uj5u.com熱心網友回復:
最垃圾的updatedate函式,還是直接GetDlgItem(IDC_EDIT1)->GetWindowText(ch1,10); 獲取資料吧轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/46945.html
標籤:界面
