Сообщения главной форме
Я так понимаю что надо писать
msgRestore = RegisterWindowMessage("Mymsg");
SendMessage(HWND_BROADCAST, RegisterWindowMessage("Mymsg"), 0, 0);
а потом создавать обработчик события
bool __fastcall TfrmData::MessageHandler(TMessage &Message)
{if (Message.Msg == msgRestore)
че надо делать когда приходит сообщение
}
тока ни фига не работает
Я тут новичек в этом. Не подскажете как из отдельного потока передать сообщение форме приложения? Что инклудить надо?
Я так понимаю что надо писать
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
);