背景:
楼主在做项目时,
1、一个对话框类A用到了CFont类型的成员变量m_font,
2、在对话框类A的OnInitDialog()成员函数里用到m_font.CreatePointFont(160, _T("华文彩云"))和GetDlgItem(IDC_XXX)->SetFont(&m_font),
3、对话框类A的析构函数有m_font.DeleteObject()。
出现的问题:
点击主界面的某个按钮时生成对话框类A的模态对话框,第一次点击该按钮时不会出现问题,第二次点击该按钮时就会出现ASSERT(m_hObject == NULL)断言。
解决方法:
把m_font.CreatePointFont(160, _T("华文彩云"))挪到对话框类A的构造函数里,其它的代码不变。这样第二次点击按钮时可以成功的生成模态对话框。