Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.05.2011, 14:00   #1
Tihon
Пользователь
 
Регистрация: 18.12.2007
Сообщений: 40
По умолчанию Как послать сообщение чужому окну

На Делфи 6 пишу приложение для управления чужим окном (написано на MFC) - класса Afx.
В этом окне живет список адресов вроде листбокса на три колонки.
Этот список я захватываю с помощью Screen OCR SDK, - и заполняю адресами таблицу DBF.
Но SDK плохо распознает специфические русские буквы - Ё и Й - черные на белом фоне. Вместо них ловятся Е и И.
Чтобы решить проблему, надо поменять цвета в окне - белый шрифт на зеленом фоне. Замечено, что это работает.

Покажите, пожалуйста, примерчик на Делфи 6 - как послать окну сообщение WM_CTLCOLOR. Я не понимаю, как записать параметры SendMessage.

Спасибо.
Tihon вне форума Ответить с цитированием
Старый 17.05.2011, 16:48   #2
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Код:
SendMessage(handle окна,WM_CTLCOLOR,параметры);
но настоятельно советую обратить внимание на эту ссылку http://msdn.microsoft.com/en-us/library/bb432504 и прочитать её
Человек_Борща вне форума Ответить с цитированием
Старый 17.05.2011, 17:04   #3
Tihon
Пользователь
 
Регистрация: 18.12.2007
Сообщений: 40
По умолчанию

Цитата:
Сообщение от Человек_Борща Посмотреть сообщение
Код:
SendMessage(handle окна,WM_CTLCOLOR,параметры);
но настоятельно советую обратить внимание на эту ссылку http://msdn.microsoft.com/en-us/library/bb432504 и прочитать её
Спасибо, разумеется, я знаю общий формат SendMessage.
Моя проблема - именно параметры.
Нельзя ли для заданных условий. - белый на зеленом, - расписать их в примере?
Спасибо.
Tihon вне форума Ответить с цитированием
Старый 17.05.2011, 17:27   #4
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

http://platonov-andrei.narod.ru/Delp...m_CtlColor.htm читаем..

Далее вы по ссылке так и не сходили? А ведь там сказано:
Цитата:
The WM_CTLCOLOR message from 16-bit Windows has been replaced by more specific notifications. These replacements include the following:....
Человек_Борща вне форума Ответить с цитированием
Старый 17.05.2011, 17:43   #5
Tihon
Пользователь
 
Регистрация: 18.12.2007
Сообщений: 40
По умолчанию

Цитата:
Сообщение от Человек_Борща Посмотреть сообщение
http://platonov-andrei.narod.ru/Delp...m_CtlColor.htm читаем..

Далее вы по ссылке так и не сходили? А ведь там сказано:
Да, я не обратил внимания на этот момент.
Но тогда возникает вопрос - что выбрать? В окне класса Afx расположено окно, которое не имеет своего хендла. Какое сообщение надо ему посылать, если поведение его типично для листбокса? Попробую, конечно, WM_CTLCOLORLISTBOX...
Спасибо.

Написал вот что.
Код:
ScreenDC := GetDC(hWndAfx); {получить контекст экрана}
      SendMessage(hWndAfx,WM_CTLCOLORLISTBOX,ScreenDC,hWndAfx);
      ReleaseDC(0, ScreenDC); {освободить контекст}
Ошибки нет, и результата тоже
И я не вижу, каким образом забить изменение цветов фона и шрифта.
Пожалуйста, вы знаете условия, - белый шрифт на зеленом фоне, -распишите конкретный примерчик!

Последний раз редактировалось Tihon; 17.05.2011 в 17:53.
Tihon вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как правильно перехватить сообщение окну? ImmortalAlexSan Общие вопросы C/C++ 5 15.02.2011 18:32
создать tooltips_class32 чужому окну rangel Общие вопросы Delphi 2 27.11.2010 00:35
Сообщения чужому окну - SendMessage Mufer Win Api 11 10.01.2010 23:48
Как послать message окну Johnson Общие вопросы Delphi 4 09.11.2009 15:18
Как послать сообщение на внешний IP адрес ? RNT Свободное общение 9 05.07.2009 21:45