Что требуется — создать ActiveX компонент, выводящий на экран диалоговую форму.
Что делаю — создаю ActiveX компонент, добавляю в ресурсы новый диалог и по событию OnDraw вывожу его. Диалог выводится (компонент вставляю в HTML-страницу), но нажатия кнопок и т.д. не обрабатываются. Среда — VS.Net 2003
Вопрос — как,добиться нормальной работы диалогового окна ?
Ногами не пинайте, разбираюсь методом тыка
Re: Как вставить диалог в ActiveX компонент (VS.Net 2003)?
Здравствуйте, ivan711, Вы писали:
I>Что требуется — создать ActiveX компонент, выводящий на экран диалоговую форму. I>Что делаю — создаю ActiveX компонент, добавляю в ресурсы новый диалог и по событию OnDraw вывожу его.
Это же надо до такого додуматься! Выводи диалог по вызову метода компонента.
I>Диалог выводится (компонент вставляю в HTML-страницу), но нажатия кнопок и т.д. не обрабатываются.
И слава богу, что сообщения не обрабатываются. А то появление диалога перед контролом вызовет еще один вызов OnDraw, открытие еще одного диалога и т.д.
I>Среда — VS.Net 2003
Здравствуйте, algol, Вы писали:
A>Здравствуйте, ivan711, Вы писали:
I>>Что требуется — создать ActiveX компонент, выводящий на экран диалоговую форму. I>>Что делаю — создаю ActiveX компонент, добавляю в ресурсы новый диалог и по событию OnDraw вывожу его.
A>Это же надо до такого додуматься! Выводи диалог по вызову метода компонента.
I> Какого именно метода ?
A>Исчерпывающее объяснение. VC++, ATL, MFC, C#, VB.NET?
I> MFC
Re[3]: Как вставить диалог в ActiveX компонент (VS.Net 2003)
Здравствуйте, ivan711, Вы писали:
A>>Выводи диалог по вызову метода компонента. I> Какого именно метода ?
Как я понимаю, задача — показать отдельный модальный диалог. Обычно для этого имеется какой-то метод компонента типа ShowMySuperCoolDlg(). Если же имеется в виду сделать ActiveX контрол на основе диалога, то это немного другая задача. Это лучше сделать созданием дочернего диалога внутри окна контрола через CDialog.Create(). Диалогу в ресурсах нужно поставить стили WS_CHILD и WS_VISIBLE.
Очень просто такой контрол делается в ATL, там визардом создается composite control.
Re[4]: Как вставить диалог в ActiveX компонент (VS.Net 2003)
Здравствуйте, algol, Вы писали:
A>Здравствуйте, ivan711, Вы писали:
A>>>Выводи диалог по вызову метода компонента. I>> Какого именно метода ?
A>Как я понимаю, задача — показать отдельный модальный диалог. Обычно для этого имеется какой-то метод компонента типа ShowMySuperCoolDlg(). Если же имеется в виду сделать ActiveX контрол на основе диалога, то это немного другая задача. Это лучше сделать созданием дочернего диалога внутри окна контрола через CDialog.Create(). Диалогу в ресурсах нужно поставить стили WS_CHILD и WS_VISIBLE. A>Очень просто такой контрол делается в ATL, там визардом создается composite control.
Задача — вставить модальный диалог в HTML-страницу. Чтобы это сделать предполагается вставить в HTML Active-X компонент (с помощью тега Object). У ActiveX-компонента, который создается с помошью MFC метода вроде ShowDlg нет. Создать и вывести диалог можно в конструкторе компонента, но, опять же, он только выводится и не реагирует на нажатия кнопок, ввод и т.д.