![]() |
|
![]() ![]() ![]() |
|
Mick76 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 11.11.2011 Репутация: нет Всего: нет |
CBuilder и буфер обмена
Добрый день. Может кто-нибудь подскажет, как увязать CBuilder и буфер обмена. Если поконкретнее, то проблема в следующем: устанавливаю свою программу в цепочку слежения за буфером обмена, а вот дальше непонятно, как получить сообщение об изменении содержимого буфера. В VisualC сообщение WM_DRAWCLIPBOARD перехватывается явно, а вот где в билдере это сделать непонятно. Просьба RxLib не предлагать, потому что вообще то хотелось бы научиться как в билдере можно обработать сообщения Windows, отличные от стандартных эвентов компонент? |
|||
|
||||
xvr |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 48 Всего: 223 |
Смотрите макросы BEGIN_MESSAGE_MAP, END_MESSAGE_MAP и VCL_MESSAGE_HANDLER
|
|||
|
||||
Mick76 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 11.11.2011 Репутация: нет Всего: нет |
Модуль Unit1.h
... protected: void __fastcall clip_ch(TMessage& Message); BEGIN_MESSAGE_MAP MESSAGE_HANDLER(WM_DRAWCLIPBOARD,TMessage,clip_ch) END_MESSAGE_MAP(TForm1); ... Модуль Unit1.cpp void __fastcall TForm1::clip_ch(TMessage& Message) { // просто пустая заглушка } После запуска выдает ошибку: Project Project2.exe raised exeption class EStackOverflow with message 'Stack overflow'. Подскажите, где у меня ошибка? |
|||
|
||||
xvr |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 48 Всего: 223 |
На первый взгляд ошибки не видно (ну за исключением того, что ваш clip_ch не зовет прежний clipboard viewer)
На всякий случай поменяйте макрос MESSAGE_HANDLER на VCL_MESSAGE_HANDLER (могут быть проблемы с ATL) А что говорит дебагер в момент слома (какой call stack)? |
|||
|
||||
Mick76 |
|
||||
Новичок Профиль Группа: Участник Сообщений: 5 Регистрация: 11.11.2011 Репутация: нет Всего: нет |
Всем спасибо за отклики.
Вот так будет правильно: Модуль Unit1.h
Модуль Unit1.cpp
|
||||
|
|||||
![]() ![]() ![]() |
Правила форума "С++ Builder" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C++ Builder | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |