Переменная диалогового окна — запись не добавлена ​​в DoDataExchange ()

После многих лет работы в C # я вернулся к старому приложению MFC, которое я написал. Но, похоже, мне нужно освежиться в нескольких вещах.

Я добавил флажок управления в существующее диалоговое окно. Затем я использовал Class Wizard для добавления неуправляемой переменной типа bool, Переменная была создана, как и ожидалось.

Тем не менее, я вижу, что запись не была добавлена ​​к DoDataExchange() метод. И когда я попытался добавить его вручную:

DDX_Check(pDX, IDC_PRINT_SUMMARY, m_bPrintSummary);

Я получаю ошибку IntelliSense:

ссылка типа «int &»(не является константным) не может быть инициализирован значением типа» bool «

1. Почему не было записи в DoDataExchange() создан для меня, когда я добавил переменную?

2. Если DDX_Check() ожидает и int &почему мастера классов по умолчанию набирают bool для значения флажка?

1

Решение

Флажок может иметь одно из трех значений, поэтому необходимо указывать значение int.

BST_CHECKED — Кнопка проверена.

BST_INDETERMINATE — Кнопка отображается серым цветом, что указывает на неопределенное состояние (применяется, только если кнопка имеет стиль BS_3STATE или BS_AUTO3STATE).

BST_UNCHECKED — Кнопка очищена

Что касается того, почему это не автоматическое редактирование DoDataExchange, это, вероятно, проблема с форматированием C ++ вашего класса.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]