Как добавить холст в MFC Dialog? - PullRequest
0 голосов
/ 22 марта 2010

Я хочу создать приложение, в главном окне которого есть холст (или что-то, где я могу рисовать пользовательские вещи) и некоторые элементы управления, например кнопки и поля редактирования. Но я застрял о том, как это сделать.

Я пытался создать MFC с SDI, но как добавить контроль к CDC ..? Я пытался создать один диалог с кнопками и полями редактирования, но какой элемент управления относится к тому, что я могу нарисовать в ..?

Пожалуйста, просветите меня, как это сделать ..

Ответы [ 2 ]

2 голосов
/ 22 марта 2010

Это было несколько лет для меня, но здесь идет:

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

В обработчике OnCreate для представления формы я создал CWnd и дал ему размер и расположение невидимого группового блока.

Я установил обработчик сообщений OnPaint для CWnd, и вуаля, холст мгновенной графики или холст для всего, что вам может понадобиться.

Теперь, в последний раз это было сделано пять лет назад, иС тех пор MFC может продвигаться постепенно, но это общий механизм.

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

Вместо SDI используйте приложение на основе диалога.Вы можете легко добавить любые элементы управления в диалог.

Возможно, вы захотите изменить размер приложения.Установите стиль границы на Толстый и включите кнопки свертывания и минимизации.Переопределите OnSize для перемещения и / или изменения размера элементов управления при изменении размера диалога.Переопределите OnSizing, если вам нужно установить минимальный размер окна.

Самый простой способ сделать произвольный рисунок в диалоговом окне - это переопределить OnPaint.Определите область диалога, в которой будет содержаться ваш собственный чертеж, возможно, окружив его элементом управления рамкой, и просто нарисуйте в DC, который создает OnPaint.

...