窗口句柄爲空了

今天使用新對話框中的複選框函數,一直出錯,句柄一直爲空,原因:

生成一個模態對話框我們這樣寫:

CDiaolg mydlg;

if(mydlg.DoModal()==IDOK)

{

  ..............

}

if成立的條件是OnOK()被調用即默認的確定按鈕被點擊了,想想看,這時對話框已經關閉了!雖然mydlg類可能依然存在,但對應的m_hWnd值已經爲空了,這可能是框架爲我們做了些工作,這裏也顯示了窗口類與窗口的聯繫與區別了,而且窗口不再使用了,釋放窗口資源句柄也是合情合理

如果你想在點擊確定按鈕時乾點什麼,你可以到mydlg的成員函數中去,而不應該在上面的"......."的位置做.

...中的對對話框的所有操作都是錯誤。

如Cbutton的getcheck函數。

應該使用DoDataExchange函數中,

DDX_Control(pDX, IDC_CHECK1, m_bCK1);

 m_b1 = m_bCK1.GetCheck();
 在......部分使用bool型變量代替新對話框中獲取的Cbutton變量 m_bCK1

參考:http://blog.csdn.net/zipper9527/article/details/4188247

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