7 / 7 / 1
Регистрация: 03.04.2012
Сообщений: 25
|
||||||||||||||||||||||||||
1 | ||||||||||||||||||||||||||
Окно с html страницей в приложении на winapi не копирует текст в буфер по crtl+C23.04.2020, 16:15. Показов 19709. Ответов 7
Есть приложение, написанное на winapi, которому нужно в своём окне показывать отрендеренный html. Для этого используется компонент на COM-объекте, внутри которого mshtml. Копирование выделенного текста в буфер через контекстное меню он поддерживает. Но копирование по Ctrl+C - нет. Процедура сабклассинга данного окна показала, что события нажатия клавиш типа WM_KEYDOWN, WM_CHAR съедаются внутри com-объекта и наружу не выходят. А значит отловить сообщение нажатия клавиш или клавиатурных акселераторов на данном этапе в приложении невозможно.
Событие вызова контекстного меню в приложение попадает и работает корректно. А сделано оно на OLE таким образом:
Клик левой кнопкой мыши обрабатывается таким образом:
Пробовал пробросить события так же таким способом:
Буду признателен за любую помощь.
0
|
23.04.2020, 16:15 | |
Ответы с готовыми решениями:
7
Почему clipboard.settext(str) копирует текст в буфер обмена без абзацев? Отправить выбранный в стороннем приложении текст в буфер обмена GCC + WinApi. Русский текст в GUI-приложении WinAPI: Как нажать кнопку в другом приложении, если в нем открыто модальное окно |
6770 / 4564 / 1843
Регистрация: 07.05.2019
Сообщений: 13,726
|
|
23.04.2020, 18:14 | 2 |
Посмотри в сторону CDHtmlDialog::TranslateAccelerator
1
|
7 / 7 / 1
Регистрация: 03.04.2012
Сообщений: 25
|
|
24.04.2020, 20:43 [ТС] | 3 |
В коде есть реализация IDocHostUIHandler, которая содержит в том числе TranslateAccelerator, но он не вызывается при нажатии комбинации. Это играет какую-то роль, или нужна реализация именно CDHtmlDialog?
0
|
6770 / 4564 / 1843
Регистрация: 07.05.2019
Сообщений: 13,726
|
||||||
24.04.2020, 21:12 | 4 | |||||
Посмотри реализацию CDHtmlDialog. Это просто обёртка над IWebBrowser2 и в нём всё работает, в том числе ctrl+c.
Переопределил TranslateAccelerator - всё вызывается
1
|
7 / 7 / 1
Регистрация: 03.04.2012
Сообщений: 25
|
||||||
25.04.2020, 14:04 [ТС] | 5 | |||||
Где мне следует это сделать? Переопределение CDHtmlDialog внутри CCustomControlSite как это сделано для IDocHostUIHandler не помогло
0
|
6770 / 4564 / 1843
Регистрация: 07.05.2019
Сообщений: 13,726
|
||||||
25.04.2020, 16:55 | 6 | |||||
Я вот здесь делал
0
|
7 / 7 / 1
Регистрация: 03.04.2012
Сообщений: 25
|
|
25.04.2020, 17:17 [ТС] | 7 |
oleg-m1973, А что в данной иерархии является родительским окном, передаваемым аргументом в конструктор? И кто создаёт, держит объект? Просто, похоже, у нас разные способы инициализации, если не вообще всё.
0
|
6770 / 4564 / 1843
Регистрация: 07.05.2019
Сообщений: 13,726
|
||||||
25.04.2020, 17:24 | 8 | |||||
От этого точно не зависит, окна создаются примерно одинаково.
CDHtmlDialog это просто модальное диалоговое окно
0
|
25.04.2020, 17:24 | |
25.04.2020, 17:24 | |
Помогаю со студенческими работами здесь
8
CopyToClipboard не копирует в буфер обмена Кнопка которая копирует содержимое в буфер обмена Очень медленно копирует из буфера в буфер (ОЗУ) Файлы: программа считывает текст из файла, добавляет в него текст, переименовывает, копирует и удаляет файл Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |