MFC中combobox中的addstring 報錯問題

最近在用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);
 }

 

這樣問題就解決了


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章