Неограниченное количество флажков - PullRequest
0 голосов
/ 11 декабря 2011

Интересно, как создать механизм, который создает новый флажок ниже предыдущего, когда вы нажимаете на кнопку. Количество флажков не ограничено. Я не думаю, что таблица объектов работает хорошо, поэтому я думаю о реализации в списке объектов. Есть предложения?

Ответы [ 2 ]

1 голос
/ 11 декабря 2011

Вот что я хотел бы сделать:

  1. Создать событие для нажатия этой кнопки (назовем его OnBtnClick)
  2. Использовать вектор / список для хранения всех флажков
  3. Когда вызывается OnBtnClick, вы делаете:
    • создаете флажок с желаемой позицией и размером и убедитесь, что он получает уникальный идентификатор (это поможет вам различать флажки при нажатии на них/checked/etc).
    • добавить флажок в список (чтобы получить его статус: проверено или не проверено )
    • добавить флажокв нужное окно, родительское окно (хотя это может произойти автоматически при его создании)
    • , если вы хотите добавить событие для добавленного флажка, вы должны проверить руководство вашей инфраструктуры GUI (вы, вероятно, будете использоватьодин и тот же обработчик событий для всех флажков и обрабатывает их отдельно на основе их идентификатора)

В зависимости от используемой структуры графического интерфейса нижние детали могут отличаться, но идея остается той же.Я сделал это с wxWidgets, QT и MFC, но я не знаю, какой фреймворк вы используете.Вы должны быть в состоянии найти примеры кода для каждой платформы.

0 голосов
/ 12 декабря 2011

Что бы вы сделали с неограниченным количеством флажков - запутать пользователя?Так что он / она не будет пытаться использовать его снова?Плохая идея, как вы можете догадаться сейчас.

Вы можете (должны) ограничить количество флажков (или, лучше, ограничить количество элементов управления в форме / диалоге).ИМО, более 10-12 КБ было бы обременительно для конечного пользователя.Следовательно, лучше всего иметь всех из них в dialog / dialog-resource и сделать их всех невидимыми / отключенными.Когда пользователь выполняет какое-либо действие, сделайте его видимым / включенным, чтобы конечный пользователь мог что-то с ним сделать.

Все еще требуется N количество CB, где N заранее не определено?Тогда вы можете иметь флажки в поле со списком или использовать флажки в списке управления.List Control уже содержит эту функцию, но для CB в Combo вам может потребоваться написать собственный класс. См. эту статью в качестве примера.

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