今天使用新對話框中的複選框函數,一直出錯,句柄一直爲空,原因:
生成一個模態對話框我們這樣寫:
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