#c #mfc #visual-studio-2019 #classwizard
#c #mfc #visual-studio-2019 #classwizard
Вопрос:
Я использую VS 2019, работая на C . Я создал страницу свойств с несколькими полями со списком и элементами управления редактированием. По причинам, которые я не понимаю, редактор диалогового окна решил, что одна из «пользовательских» переменных-членов в классе была присоединена к одному из элементов управления Edit. Я имею в виду, что когда я запускаю мастер классов и перехожу на вкладку «Переменные-члены», он показывает, какой должна быть пользовательская переменная, прикрепленная к одному из элементов управления редактированием. Когда я выделяю ее и нажимаю «Удалить переменную», она ничего не делает. Вот что я пробовал:
- Удалил переменную и подтвердил, что мастер классов больше не отображает ее. Верните его обратно, и он снова подключит его к элементу управления Edit.
- Изменен тип переменной. Никакого эффекта.
- Изменено имя переменной. Никакого эффекта.
- В мастере классов я попытался добавить переменную через диалоговое окно «Добавить пользовательский». Он сообщает мне, что переменная уже существует.
- Удалил и воссоздал элемент управления Edit. С другим идентификатором. Затем мастер показывает переменную-член как «пользовательскую». Однако, когда я меняю идентификатор обратно на исходный идентификатор, он автоматически снова связывает его с элементом управления Edit, поэтому я действительно не решил проблему.
Я не знаю, связано ли это, но когда я нажимаю «Удалить переменную», я всегда получаю всплывающее сообщение об ошибке, в котором говорится: «Индекс и длина должны ссылаться на местоположение в строке». Но я получаю это независимо от того, какую переменную я удаляю, а в других случаях она все равно удаляет переменную.
Кто-нибудь еще видел это? Есть ли способ вручную отключить удаление этой связи?
Комментарии:
1. Поскольку мастер классов не работает уже два десятилетия, я не успеваю за тем, что он делает. На уровне кода связь между членами класса и элементами управления пользовательского интерфейса выполняется изнутри
DoDialogExchange
реализации с помощью одной изDDX_
подпрограмм (см. TN026: DDX и DDV Подпрограммы для справки). Я не знаю, являются ли это единственными данными, которые мастер классов использует для определения ассоциаций.2. Это похоже на ошибку в VS Class Wizard. Я мог бы легко воспроизвести это. Единственное, что нужно сделать, я думаю, это просто зайти в код и удалить все ссылки вручную.
3. Вы можете сообщить об этой проблеме сообществу разработчиков .
4. @MinxinYu-MSFT мастер классов стал практически непригодным для использования много лет назад, я полагаю, что последний, который работал должным образом, был в Visual Studio 6.0. Так что я не уверен, что MS когда-нибудь это исправит.
5. Вот мой прогноз: в отчете о потенциальном дефекте бот в конечном итоге оставит следующий ответ: «Я обнаружил, что эта проблема не получила большого количества активности, голосов или комментариев […], по моему опыту, эта проблема вряд ли будет исправлена». Microsoft не заботится обольше нет его собственной платформы разработчика. Количество пренебрежения ошеломляет.