MFC DDX_RADIO会导致调用dodataexchange(dlgdata.cpp行286)时导致调试断言失败
MFC DDX_Radio causes debug assertion failure when DoDataExchange is called (dlgdata.cpp Line 286)
我有一个带有4个按钮组的无线电按钮的对话框。 Dodataexchange中的DDX_Radio(pDX, D_RADIO_GROUPLEAD, intToStore)
在那里保存和加载。它可以很好地工作。
选择更改,dodataexchange调用,存储和加载数据没问题。
当我隐藏一个无线电按钮时,就会发生问题(通过 ShowWindow(SW_HIDE)
隐藏它。让我们调用它3rd按钮以供参考。以前,选择是此第三按钮。
我的逻辑将自动选择默认一个(一个在编辑器中标记为true的组)。我调用按钮的setCheck(1)。
视觉上一切似乎都在起作用。
但是,当我单击第二个按钮时,请尝试调用dodataexchange(因此ddx_radio),它将导致调试断言失败。(dlgdata.cpp行286)
和
数据在intToStore
中没有正确填充。
为什么这可能是以及如何避免此问题?
谢谢。
问题是,禁用了Windows跳过按钮中的自动广播按钮。详细。选择和禁用按钮3时,请单击按钮2。按钮2被选中,但按钮3未被选中。
当渡视运行时,就会发生下一个问题。它不会检查按钮是启用还是禁用。DDX_RADIO只是在所有无线电按钮上循环,它在组中启用了2个按钮。这导致断言。ddx_radio不在乎启用还是禁用按钮。
我的建议:使用自定义的单击手柄,并手动禁用所有其他按钮。
相关文章:
- 尝试使用 std::vector<std::thread时出现静态断言失败错误>
- uint_not_usable_without_attribute在业力规则中使用数字生成器时静态断言失败
- 从 exe 文件 (Visual Studio ) 启动时调试断言失败
- 断言"id < 0"在Qt ActiveX中失败
- 在 CppUnit 中测试中止断言失败
- 使用扫描的调试断言失败
- MS 本机单元测试 - 断言::线程失败不起作用
- 为什么我的Qt程序在断言失败后继续运行?
- 图片不显示,关闭时出错 --> 调试断言失败!表达式:is_block_type_valid(标头>_block_use)
- 访问提升:shared_ptr 主范围外崩溃,断言失败:px != 0.指针的正确用法是什么?
- C++ 调试断言失败 - 矢量下标超出视觉工作室的范围
- 错误:断言失败 (src.type() == CV_8UC1) 在阈值中
- Boost Beast 异步服务器失败,断言失败:(id_ != T::id) 在多个 aync 调用中
- 使用imwrite OpenCV时断言失败
- 调试断言失败的缓冲区!=nullptr
- 使用 ofstream 写入文本文件时断言失败
- OpenCV 错误:相机校准:断言在matrix_wrap.cpp失败
- 提升继续恢复断言失败
- 获取有关调试断言失败的错误:表达式:"(_Ptr_user &(_BIG_ALLOCATION_ALIGNMENT -1)) == 0" &&0
- 打破gdb中失败断言的正确方法是什么