D_code_writer Ответов: 1

VS 2017 C++, MFC и cpropertypages and cpropertysheets


Эй, ребята, у меня есть вопрос относительно PropertyPages и PropertySheets с MFC и VS 2017.

В настоящее время я объединяю проект с VS 2008 по VS 2017. Это написано на C++ и MFC и первоначально было написано для 32 бит. В VS 2017 цель состоит в том, чтобы объединить его на 64-битной платформе.

В любом случае один из элементов управления использует классы CPropertyPage и CPropertySheet. В VS 2008 это работает очень хорошо. Однако в VS 2017 (я бегу 15.9.14) у меня ужасное время. В классах страниц свойств классы стека страниц свойств повреждаются. Если я перейду к системному шрифту на элементах управления, я получу Comctrl32.dll исключения. Кроме того, когда я возвращаюсь к основам и начинаю со свежих классов PropertyPage и Propertysheet, мне приходится вручную связывать идентификаторы элементов управления и т. д. Это очень странно. Кроме того, я использовал классы CMFCPropertyPage и CMFCPropertySheet.

Вопрос, который я задаю, есть ли у кого-нибудь образец проекта MFC VS 2017, который использует страницы свойств/листы, на которые я мог бы взглянуть? Кроме того, некоторые советы и рекомендации были бы очень признательны.

Заранее большое спасибо. Я понимаю, что некоторые из этих вопросов глупы, но я думаю, что несколько человек могут оказаться в моей лодке, поэтому я решил, что этот вопрос стоит задать.

Что я уже пробовал:

Я попытался решить эту проблему следующим образом,

*Повторный заказ членов и заявление от моего занятия поля.
*В диалоговом окне ресурсов измените системный шрифт и переместите шрифт на MS Sans Serif 8 point.
*Создание новой страницы свойств и листа.

Shao Voon Wong

Правильно ли он работает в 32bit на VS 2017? Вы пробовали чистить и перестраивать проекты?

D_code_writer

Шао - это верно, сэр, я сделал полную перестройку и очистку на 64-битной версии. Однако цель состояла в том чтобы перейти на 64 битную версию поэтому я не пробовал 32 битную дорогу в VS 2017

Shao Voon Wong

Сначала вы должны были убедиться, что 32-битный процессор работает.

D_code_writer

Может быть, мат, но это было бы академично, так как весь смысл этого упражнения заключался в 64-битном преобразовании.

1 Ответов

Рейтинг:
5

Rick York

Взгляните на проект под названием NewControls в образце пакета visual studio 2010. Вы можете найти его здесь : VCSamples/VC2010Samples/MFC/Visual C++ 2008 Feature Pack/NewControls на GitHub[^].

Этот пример приложения имеет лист свойств с шестью страницами, которые демонстрируют элементы управления, добавленные в MFC в 2010 году.


Rick York

Лично я предпочитаю реализовывать страницы свойств с базовым классом, известным листу, а затем без других заголовочных файлов. На самом деле, подавляющее большинство диалогов, которые я пишу в эти дни, не имеют заголовков. На самом деле, я не могу вспомнить, когда в последний раз делал заголовочный файл для диалога. Просто на самом деле в нем нет необходимости, когда все, что вам нужно, - это одна интерфейсная функция для передачи данных в edited, и я определяю прототип в заголовке, который определяет данные.

D_code_writer

Спасибо вам, добрый сэр, - я ценю это.