我有基於MFC對話框的應用程序。無效鑄型
void CThr_MfcDlg::OnBnClickedButton1()
{
this->SetWindowTextW(L"bla");
(CThr_MfcDlg*)GetDlgItem(IDD_THR_MFC_DIALOG)->SetWindowText(L"hello") ;
}
線this->SetWindowTextW(L"bla");
改變窗體的標題改爲bla
我希望線(CThr_MfcDlg*)GetDlgItem(IDD_THR_MFC_DIALOG)->SetWindowText(L"hello") ;
應該改變標題爲hello
,但有編譯錯誤:
Error 1 error C2440: 'type cast' : cannot convert from 'void' to 'CThr_MfcDlg *'
嘗試'((CThr_MfcDlg *)函數GetDlgItem(IDD_THR_MFC_DIALOG)) - > ...' – 2014-10-01 10:52:52
問自己,爲什麼'(CThr_MfcDlg *)'存在於這個代碼*都*。 ['CWnd :: GetDlgItem'](http://msdn.microsoft.com/en-us/library/77d16yhw.aspx)返回一個'CWnd *',它支持['CWnd :: SetWindowText'](http:///msdn.microsoft.com/en-us/library/yhczy8bz.aspx)。 – WhozCraig 2014-10-01 10:52:58
+1以抵消downvote。我認爲這不是一個壞問題,因爲初學者可以很容易犯這個錯誤。 – ikh 2014-10-01 10:55:25