我在对话框中创建了一个复选框,并尝试访问其状态(无论是否选中)。这是我的代码:
CButton *m_ctlCheckBlack = (CButton *)GetDlgItem(IDC_BLACK);
int chkBoxBlack = m_ctlCheckBlack->GetCheck();
当我运行这段代码时,它弹出一个异常:
Exception thrown at 0x0FA45564 (mfc140d.dll) in braille_obr.exe: 0xC0000005:
Access violation reading location 0x00000020.
任何帮助将不胜感激。谢谢。
最佳答案
很少有充分的理由使用 GetDlgItem。在您的资源编辑器中,右键单击按钮和“添加变量..” 它将默认为控件。给它起个名字。您将在对话框类中获得一个成员:
CButton myButtonName;
现在应该可以安全地:
myButtonName.GetChecked( );
因为它将被创建并被正确地子类化。
关于c++ - MFC "memory allocation violation",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36182872/