Управление браузером Windows против CDHtmlDialog и CHtmlView - PullRequest
3 голосов
/ 05 сентября 2011

Я хотел бы знать разницу между следующими элементами управления и классами.

Элемент управления Windows Browser против CDHtmlDialog и CHtmlView.

Видно, что эти вещи используются для добавления html-контента в пользовательский интерфейс дляWindows-приложение.

Но когда мы ищем в интернете, эти вещи часто путают.

Было бы хорошо, если бы некоторые объяснили удобство использования этих элементов управления и классов.

1 Ответ

3 голосов
/ 05 сентября 2011

Элемент управления веб-браузера - это элемент управления Windows ActiveX, который, вероятно, используется самим проводником Windows для отображения содержимого HTML. По крайней мере, элемент управления Web Browser и Windows Explorer используют одну и ту же реализацию для рендеринга HTML.

CHtmlView - это класс, созданный для MFC - CView и содержащий элемент управления ActiveX.
CHtmlDialog - это класс, производный от MFC - CDialog, делающий то же самое.

Это отдельные классы, потому что, к сожалению, в MFC есть "огромный разрыв" между диалогами, представлениями и окнами.

Я не работал значительно ни с одним из классов MFC, но, насколько я понимаю, они сами по себе не добавляют никакой функциональности. Вы также можете разместить веб-браузер как обычный ActiveX и использовать GetControlUnknown для получения интерфейса IWebBrowser.


Самая большая проблема в моем опыте заключается в том, что DOM доступен только после DocumentComplete, и это событие не сработает, пока цикл сообщений не прокачается. Это делает некоторые операции довольно болезненными. Я закончил с модификациями очередей пользовательского интерфейса, пока DOM не стал доступен.

...