Выбрать / снять все флажки CheckBox WIN32 - PullRequest
0 голосов
/ 13 июня 2019

Я создал флажок «выбрать / снять все» в списке флажков, которые динамически создаются для меню запуска программы.Когда установлен флажок «выбрать / снять все», я бы хотел, чтобы все поля в списке отображались как отмеченные или не отмеченные.В настоящее время при нажатии будет установлен только флажок «выбрать / снять все».Я не знаю, как к этому подойти, поскольку поля создаются динамически, а значения флажков читаются только при нажатии кнопки «ОК» в меню запуска.

        // 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

1 Ответ

1 голос
/ 14 июня 2019

Вы можете создавать пользовательские сообщения и их обработчики сообщений.

Ссылка: Как создавать пользовательские сообщения и их обработчики сообщений?

Использование SendMessageфункция для запуска сообщения, и MFC проверит отображение сообщения и выполнит соответствующий обработчик сообщения.

Вы можете проверить и выбрать статус флажка в обработчике сообщений.

Ссылка: Как установить и снять флажки, а также включить и отключить элемент управления Box в MFC?

Также обратите внимание, что вы устанавливаете уникальный идентификатор для каждого элемента управления Box.

Подробно: когда вы нажимаете кнопку OK, запускаете обработчик сообщений с помощью настраиваемого сообщения, чтобы проверить состояние флажка

Дополнительная информация: Получите код уведомления из флажков Listview Control

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...