Пользовательские сообщения
Как правильно осуществить процес регестрации а так же посылки и приема пользовательского сообщения от от одного окна - другому ?
1)В заголовочном файле определяем пользовательское сообщение:
#define WM_ShowMessage WM_USER
2)В таблице сообщений добавляем свое и связываем с обработчиком (помещается тоже в заголовочный файл):
BEGIN_MESSAGE_MAP
MESSAGE_HANDLER(WM_ShowMessage,TMessage,ShowMessage);
END_MESSAGE_MAP(TForm);
3)Пишется непосредственно сам обработчик сообщения (в файле реализации):
void TFNV::ShowMessage(TMessage Msg)
{
...
}
Для отсылающего приложения (окна):
1)Также определяется:
#define WM_ShowMessage WM_USER
2)В нужном месте отсылается сообщение:
SendMessage(Handle, WM_ShowMessage, 0, 0);
Приблизительно так оно и делается.
Диапазоны
0 до WM_USER-1 - сипользуются Win
WM_USER до 0x7fff - номера частных сообщений внутри класса оконных компонентов
0x8000 до 0xBFFF и > 0xFFFF резерв
0xC000 до 0xFFFF обмен между приложениями и зарезервированные функцией RegisterWindowMessage