gpt4 book ai didi

c++ - 选择/取消选择所有复选框 WIN32

转载 作者:行者123 更新时间:2023-11-28 04:16:08 24 4
gpt4 key购买 nike

我在为程序启动菜单动态创建的复选框列表中创建了一个“全选/取消全选”复选框。当“全选/取消全选”复选框被选中时,我希望列表中的所有框都显示为选中或未选中。目前,单击时只会选中“全选/取消全选”复选框。我不知道如何解决这个问题,因为这些框是动态创建的,只有在启动菜单中单击“确定”按钮时才会读取复选框的值。

        // create the structure to store the check boxes so we can populate it on the fly
CheckBoxOptionStruct* Temp = new CheckBoxOptionStruct;
Temp->OptionsListIndex = i;
m_CheckBoxList.push_back(Temp);

// create the check boxes
for(int j = 0; j < m_OptionsList[i]->Labels.size(); j++)
{
CButton* CheckBox = new CButton();
CheckBox->Create(m_OptionsList[i]->Labels[j], WS_CHILD | WS_VISIBLE | BS_AUTOCHECKBOX, CRect(Left + 10, *Top, Right - 10, *Top + 15), this, ControlCounter++);
CheckBox->SetFont(DialogFont);
Temp->TheControls.push_back(CheckBox);

// increment the row counter
*Top += 20;
}

// increment the next row position
*Top += 10;}

目前的运作方式:

image

我希望它如何工作:

image

最佳答案

您可以创建用户定义的消息及其消息处理程序。

链接:How to create user-defined messages and their message handlers?

使用 SendMessage 函数触发消息,MFC 将检查消息映射并执行关联的消息处理程序。

您可以在消息处理程序中检查和选择复选框的状态。

链接:How to check and uncheck and enable and disable a check Box control in MFC?

另请注意,您为每个复选框控件设置了唯一的 ID。

Detail: When you press the OK button, trigger the message handler through a custom message to check the status of the check box

更多信息: Get the notification code from Listview Control checkboxes

关于c++ - 选择/取消选择所有复选框 WIN32,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56583822/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com