窗口句柄为空了

今天使用新对话框中的复选框函数,一直出错,句柄一直为空,原因:

生成一个模态对话框我们这样写:

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

你可能感兴趣的:(窗口句柄为空了)