MFC 中的单选按钮(重写)
Posted
技术标签:
【中文标题】MFC 中的单选按钮(重写)【英文标题】:Radio buttons in MFC (re-written) 【发布时间】:2011-12-04 04:08:28 【问题描述】:所以我正在做一个使用 MFC 的类项目。因为我在制作角色类的东西(D&D 游戏),所以我从来不需要学习如何使用 MFC。
我目前可以使用单选按钮。所以我知道哪个被按下并且可以检索它。
我的问题是:我有 2 个单选按钮,它们代表 2 组 6 个掷骰子用于统计数据。
我想显示一个包含特定单选按钮集合的字符串。所以我想知道的是:有没有办法让单选按钮的标题字符串等于一个特定的字符串,该字符串可以在打开带有所述单选按钮的对话框的时间之间改变?
编辑:我改变了整个问题,因为我解决了除了原版的这一部分之外的所有问题。
【问题讨论】:
【参考方案1】:MFC 将单选按钮包装在 CButton 实例中,因此您可以使用它们的 SetWindowText() 方法:
yourRadioButton.SetWindowText(_T("New Text"));
【讨论】:
如何在特定的单选按钮上使用它? 这取决于您存储按钮的方式。您可以将对话框的成员变量与DDX_Control()
结合使用,或者对GetDlgItem()
执行显式调用。如果您使用当前代码的相关部分更新您的问题,我可能会提供进一步的帮助。
这个调用正确吗? GetDlgItem(IDC_SET_1)->SetWindowTextA(_T("%s",cSet1)); cSet1 是一个 CString。
我在那条线上放了一个断点,一旦我进入它就会得到这个:comp345_dnd.exe中0x762e7a19处的未处理异常:0xC0000005:访问冲突读取位置0xfeeefefe。
您不能将格式化参数传递给_T()
,因此您可能希望创建一个CString
对象。另一方面,这并不是必需的,因为您没有任何要格式化的内容(您已经在cSet1
中有一个字符串)。此外,您应该调用SetWindowText()
而不是SetWindowTextA()
。类似GetDlgItem(IDC_SET_1)->SetWindowText(cSet1);
.以上是关于MFC 中的单选按钮(重写)的主要内容,如果未能解决你的问题,请参考以下文章