在OnInitDialog()中断言失败

时间:2015-01-14 12:43:41

标签: c++ windows visual-studio-2010 mfc assertion

所以我有一个"断言失败"我想运行我的程序时出现错误消息。我明白这意味着某个条件应该是真实的,但我不知道如何纠正这个问题。

该错误涉及以下一行:

_AFXWIN_INLINE BOOL CEdit::SetReadOnly(BOOL bReadOnly)
   { ASSERT(::IsWindow(m_hind)); return (BOOL)::SendMessage(m_hWnd, EM_SETREADONLY, bReadOnly, 0L); }

所以我明白了#34; Read Only"条件,但我不知道在哪里纠正。

我是C ++的新手,很抱歉,如果我忘记在我的问题中提供重要信息。

提前致谢!

2 个答案:

答案 0 :(得分:2)

OnInitDialog函数包含对基类函数

的调用
CDialog::OnInitDialog();

将调用SetReadOnly移至该行之后。编辑控制变量仅在该行之后初始化。

答案 1 :(得分:1)

感谢您的帮助!最后,在逐行完成整个代码之后,我意识到在DoDataExchange中我混淆了两次相同的变量而不是两个不同的变量...所以我真的不知道怎么会让我这个错误但是我想如果有人犯了同样的心不在焉的错误并得到那个错误,我会及时通知你。