Как вставить несколько FormView в представлении приложения SDI - PullRequest
0 голосов
/ 22 марта 2020

Я искал на форуме, и я не нашел решения по моей проблеме. Надеюсь, вы мне поможете :) Я работаю над личным проектом по проектированию SF C (Последовательная функциональная схема) и работаю с Visual Studio в SDI (я использую библиотеку MF C). Если вы видите «дизайн» SF C, вы можете увидеть различные элементы, необходимые для его составления. Таким образом, вы можете найти Шаг, Переход и многое другое. Если я сделаю шаг для объяснения своей проблемы, после двойного щелчка по шагу откроется всплывающее диалоговое окно с элементами для определения этого шага (действия на этом шаге и т. Д.). Проблема здесь, я не вижу двух или более элементов шага одновременно. Я хочу повторно использовать существующую концепцию в другом программном обеспечении, посмотрите это. Шаг закрытия Шаг открыть Диалог для добавления

У меня вопрос, как я могу реализовать диалог с моим элементом graphi c в мэйнфрейме (в данном случае, шаг)? Я не знаю, как я могу вставить диалог с моим элементом, я думаю, что мне нужно использовать CFormView, но я не знаю. Это диалоговое окно должно быть изменяемого размера и сокращаться непосредственно с помощью шага graphi c. есть идеи?

Заранее спасибо! Извините за мой Engli sh ..

Извините, я думаю, что мой запрос не ясен .. (Спасибо за ваш ответ) Контекст, это приложение SDI с архитектурой Document / View. На самом деле представление происходит от CScrollView. Итак, в классе документа у вас есть разные списки компонентов для марки SF C (Шаги, переходы и символы ...). Я работаю сегодня над элементом Step. Пользователь вставляет новый шаг, шаг рисуется на виде так: введите описание изображения здесь

И теперь пользователь хочет изменить события на этом шаге, для этого после двойного щелчка по шагу открывается редактор событий справа от шага рисования, например: введите описание изображения здесь

Для этого я создал новый ресурс диалога и создал класс с помощью мастера в производном классе CForwView. В атрибуте шага вы можете найти один экземпляр этого производного класса (производный класс диалога).

Но это не работает правильно, я думаю, что мой метод плохой. С первой попытки я отправил указатель текущего документа в функцию «CFormView :: Create», чтобы кнопка «Сохранить» была активной с фокусом на FormView. Но после уничтожения шага экземпляр FormView уничтожается, а документ с экземпляром formview ...

Нет проблем, вы можете использовать «Создать» в CCreateContext нулевой указатель. Но с документом или без него у меня много проблем (дизайн графика c не корректен в FormView, регулярно (не систематизирован c У меня есть ошибка при обмене Pro c (по разным причинам)). Но " Понятие "хорошо, редактор следует за рисунком, если я прокручиваю, я могу открыть или закрыть редактор в любое время и на любых элементах.

Для старого захвата, это моя SF C дизайнерская" модель " Мое приложение является дополнением к этому приложению, поэтому я хочу подобный дизайн. Я не знаю, как работает мое модельное приложение. В моем приложении все отрисовывается с помощью MF C GDI, я не использую ActiveX или другие tools.

Итак, как правильно реализовать один экземпляр редактора за шагом?

Для реализации в этом FormView у меня есть: - Создать новый диалог в ресурсах - Создать производный класс CFormView с помощью созданного диалога - Добавить один экземпляр в атрибуты элемента Step - "OnDbClickOnStep" -> вызов "Create" с хорошей позицией / размером, указателем mainview (в моем случае производный класс CSrollView) - Готово, FormView вставлен в mainview, я могу редактировать свои события шага. ? Не выполнено, я потерял кнопку сохранения и другую функцию, связанную с документом с акцентом на элемент управления в FormView. Приложение хочет документ с этим представлением, как переопределить это? ? Ошибка в Pro c exchange, по другой причине ...

У вас есть идея?

1 Ответ

0 голосов
/ 22 марта 2020

Обычно вы ничего не рисуете в «основном фрейме» (или «фреймах MDI-clild», в случае приложения MDI), это делается библиотекой, и imo достаточно для этого. Ваши данные отображаются в CView -приобретенном классе.

CView - это базовый класс всех других классов представления MF C. Это простой графический класс - вам нужно нарисовать его самостоятельно в элементе OnDraw().

CScrollView является потомком CView, добавляя функцию прокрутки (полосы прокрутки автоматически отображаются, если прокручиваемая область больше видимой области окна).

CFormView является потомком CScrollView, отображающим диалог ресурсов-скрипт, содержащий «элементы управления» (поля редактирования, флажки, изображения, ActiveX и т. д. c).

Поскольку в вашем случае «элементы управления» не будут изначально известны (за исключением, может быть, в некоторых особых случаях) и будут создаваться программно, сценарий ресурса, скорее всего, будет пустым, поэтому при использовании CFormView или CScrollView в основном будут одинаковыми. Я бы предложил начать с CFormView и "понизить" его до CScrollView, если CFormView не является необходимым или вызывает проблемы.

Что это за элементы "Step", показанные на фотографиях? Элементы управления ActiveX, возможно, дочерние диалоги? Они лучше всего работают как дочерние элементы управления в диалоговом окне. Они уже реализованы, или они просто фото какого-то другого программного обеспечения? Кстати, ActiveX - это способ определения элементов управления, которые можно использовать и в других проектах, без необходимости включать их в источник проекта.

...