本文主要是介绍GetDlgItem使用时出现ASSERT断言或报错,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
MFC中调用GetDlgItem函数出现ASSERT(::IsWindow(m_hWnd));断言报错
原因:
在MFC的对话框程序、单文档程序和多文档程序中,由于控件所处的位置不同(即控件属于那个窗口程序),导致直接调用此函数无法获取所属窗口对象导致出现断言报错。
解决:
对话框程序:直接使用GetDlgItem函数即可;
单文档程序:m_wndDlgBar.GetDlgItem()//此处直接使用GetDlgItem函数会报错,需通过m_wndDlgBar的CWnd对象(或控件所属窗口对象/句柄)调用该函数;
多文档程序:根据控件添加位置使用与其对应的所属窗口进行调用GetDlgItem函数,如m_wndClassView ,m_wndDlgBar,m_wndFileView,m_wndMenuBar等。
这篇关于GetDlgItem使用时出现ASSERT断言或报错的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!