最近在用MFC的ComobBox,主要想在對話框和視圖類之間進行數據傳遞。
也就是視圖類裏面的東西動態的添加到對話框中的ComobBox中去。
自己也就試着寫了一下:
ComboTest m_test;
m_test.m_varcombo.AddString(L"here");
這時候報錯:
原因是在斷言時候hWnd爲空。
在網上找了很長時間,很多人也出現了這樣的錯誤,但是沒有人解釋的很清楚。
自己也研究了一下,發現問題是這樣的:
主要的問題時模態對話框與非模態對話框的區別。
模態對話框主要是自己跟自己的數據交換
非模態對話框主要是自己跟外部的數據交換
具體的可以去查詢模態與非模態對話框的區別。
解決的方法就是創建非模態對話框。
ComboTest *m_test = NULL;
m_test = new ComboTest;
if(m_test->Create(IDD_DIALOG1,this))
{
m_test->m_str = L"asds";
m_test->cur = L"";
//process
m_test->ShowWindow(SW_SHOW);
}
這樣問題就解決了