c++ - MFC:如何根据按钮单击交替显示两个组框?
问题描述
我有两个包含 2 个单选按钮的组合框,每个都参考图。我需要一种机制,其中按钮 1 的初始阶段值显示文本“组框 2”,对话框上显示的当前组框是组框 1。当我单击单选按钮 1 = 组框 2 时,当前发生以下情况:
按钮 1 中的文本更改为组框 1
对话框中显示组框 2
组框 1 已隐藏
解决方案
您可以使用以下方法:创建一个将显示/隐藏相关组框并更新按钮上的文本的函数。
您可以使用此功能显示/隐藏控件和组。接收到的参数是无线电和组框的 ID。
void CMFCApplication2Dlg::ShowHideControls(BOOL hide, int groupID, int radio1ID, int radio2ID) { GetDlgItem(groupID)->ShowWindow(hide ? SW_HIDE : SW_NORMAL); GetDlgItem(radio1ID)->ShowWindow(hide ? SW_HIDE : SW_NORMAL); GetDlgItem(radio2ID)->ShowWindow(hide ? SW_HIDE : SW_NORMAL); }
创建一个控制切换的函数:
void CMFCApplication2Dlg::ToggleGroup(BOOL group1Visible) { ShowHideControls(group1Visible, IDC_MY_GROUP, IDC_RADIO1, IDC_RADIO2); ShowHideControls(!group1Visible, IDC_MY_GROUP2, IDC_RADIO3, IDC_RADIO4); CString txt; txt.Format(L"Group Box %d", group1Visible ? 1 : 2); GetDlgItem(IDC_BUTTON_TOGGLE)->SetWindowText(txt); }
调用
ToggleGroup
来自:a)
OnInitDialog
带有 FALSE 参数。b) 在按钮单击事件处理程序中。
推荐阅读
- c++ - C++ 标准模板库 (STL) 中的列表。我制作了以下程序,但我不知道如何制作打印列表的功能
- javascript - 发布到另一个页面后重定向
- javascript - CORS 中间件适用于 app.get 但不适用于 app.post
- c - C: Table-Spreadsheet 数据结构
- javascript - 从 API 存储值,然后获取数据以减少请求量
- python - 使用 selenium python 单击元素时出现问题
- datepicker - jquery 日期选择器扩展库
- c++ - 如何防止超出范围的复制对象调用析构函数
- ios - SwiftUI DidBecomeActiveNotification - 所有值都丢失
- matlab - 如何调整两条线之间绘制的线的长度?