Как создать и добавить пользовательский компонент в приложение на основе диалога (MFC)? - PullRequest
3 голосов
/ 16 апреля 2010

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

Я не знаю 2 вещи:

  1. Где я должен использовать (внутри класса компонентов!) Методы рисования, например, FillRect

    или PolyLine? В обработчике OnPaint, что я должен определить и отобразить его в MESSAGE MAP? Будет

    это (обработчик OnPaint) вызываться из обработчика OnPaint диалога приложения

    или откуда?

  2. Как подключить компонент, как только он будет сделан, к тестовому приложению, которое будет

    например быть на основе диалога? Где я должен создать экземпляр этого компонента? От

    OnCreate метод MyAppDialog.cpp?

Я начал кодировать в MFC несколько дней назад, и я так растерялся.

Заранее спасибо,

Приветствие.

Ответы [ 2 ]

0 голосов
/ 18 мая 2010

Для создания нового компонента в MFC необходимо создать класс из класса окна (CWND),

после этого вы можете иметь MessageMap для компонента и ваших методов, а также переопределить метод CWND :: OnDraw, чтобы нарисовать то, что вы хотите. Перед этим я предлагаю вам взглянуть на контекст устройства

http://msdn.microsoft.com/en-us/library/azz5wt61(VS.80).aspx

Удачи друг.

0 голосов
/ 17 апреля 2010

Рисование элемента управления обрабатывается точно так же, как если бы оно не было элементом управления. Учитывая, что вы используете MFC, это (по крайней мере, обычно) означает, что вы рисуете в классе View 'OnDraw (MFC обычно обрабатывает OnPaint внутри, поэтому вы редко касаетесь его).

Вставка результирующего элемента управления ActiveX в хост-приложение будет выполняться как вставка любого другого элемента управления ActiveX. Предполагая, что вы занимаетесь разработкой в ​​Visual Studio, вы обычно делаете это, открывая диалоговое окно, щелкая правой кнопкой мыши внутри диалогового окна и нажимая «Вставить элемент управления ActiveX ...» в всплывающем меню. Выберите свой элемент управления из списка, и он сгенерирует класс-обертку для элемента управления и кода для создания объекта этого класса по мере необходимости. С точки зрения кода диалога, он просто есть, и вы можете использовать его примерно так же, как и любой другой элемент управления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...