Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Сообщения главной форме

1.5K
06 февраля 2004 года
AndySPb
58 / / 11.04.2003
Я тут новичек в этом. Не подскажете как из отдельного потока передать сообщение форме приложения? Что инклудить надо?
Я так понимаю что надо писать
msgRestore = RegisterWindowMessage("Mymsg");
SendMessage(HWND_BROADCAST, RegisterWindowMessage("Mymsg"), 0, 0);
а потом создавать обработчик события
bool __fastcall TfrmData::MessageHandler(TMessage &Message)
{if (Message.Msg == msgRestore)
че надо делать когда приходит сообщение
}
тока ни фига не работает
2.0K
09 февраля 2004 года
Fazil6
126 / / 17.12.2003
Цитата:
Originally posted by AndySPb
Я тут новичек в этом. Не подскажете как из отдельного потока передать сообщение форме приложения? Что инклудить надо?
Я так понимаю что надо писать
msgRestore = RegisterWindowMessage("Mymsg");
SendMessage(HWND_BROADCAST, RegisterWindowMessage("Mymsg"), 0, 0);
а потом создавать обработчик события
bool __fastcall TfrmData::MessageHandler(TMessage &Message)
{if (Message.Msg == msgRestore)
че надо делать когда приходит сообщение
}
тока ни фига не работает



Существуют варианты.
Самое простое использовать компонент TApplicationEvents

Если руками есть желание разобраться, то технология следующая.
В хедерах форм обменивающихся сообщениями должна быть строка
#define MY_EVENT1 (WM_USER+4001)
здесь MY_EVENT1 - идентификатор сообщения

WM_USER+4001 - прибавлять надо больше 4000

Далее в хедере принимающей формы надо объявить функцию обработчик, у тебя это
bool __fastcall TfrmData::MessageHandler(TMessage &Message)
и в протектед секции указать, что какое сообщение он должен обработать

protected:

BEGIN_MESSAGE_MAP
VCL_MESSAGE_HANDLER(MY_EVENT1, TMessage , MessageHandler)

END_MESSAGE_MAP(TForm)

В принципе это все.

Послать сообщение

PostMessage(

thrIDback , // handle of destination window
MY_EVENT1, // message to post
0, // first message parameter
0 // second message parameter
);

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог