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 中的单选按钮(重写)的主要内容,如果未能解决你的问题,请参考以下文章

MFC为禁用的单选按钮添加工具提示

将单选按钮添加到现有组 - MFC

MFC 中的广播组

Python Tkinter 中的单选按钮值

如何隐藏单选按钮列表中的单选按钮之一?

更改单选按钮选中状态时如何从单选按钮组中的单选按钮获取文本