116 - Надсилання повідомлень між програмою
Крок 116 - Надсилання повідомлень між програмою
Отже, наше завдання – створити дві програми. Одна буде сервер і надсилатиме повідомлення, а друга буде клієнт природно і ці повідомлення прийматиме. Отже, загальна ідея така. Можна помилити повідомлення, використовуючиHWNDіншого вікна. Для цього є функціяSendMessage. Вона надішле будь-яке повідомлення будь-якому вікну, якому скажете. Відловити повідомлення можна за допомогою картки повідомленняON_MESSAGE. Давайте робити сервер.
ЗапускайтеAppWizard, тепер створюйте програму на базі діалогового вікна, відключивши всі кнопки для простоти. На діалоговому вікні давайте зробимо кнопку. І процедуру натискання на неї теж треба.

Визначимо наше повідомлення. Тепер можна створювати код натискання на кнопку. Перше, що я роблю, це використовую функціїAPI, а неMFC. Для цього ставлю дві точки. Для надсилання повідомлення мені потрібно знайти вікно клієнта - це робитьFindWindow. У першому параметрі необхідно вказати ім'я класу вікна, яке вказується вCreateStructпід час створення вікна. Я його не вказав. Другий параметр – ім'я заголовка вікна. Це загрожує деякою небезпекою у разі, якщо імена заголовка вікна збігатимуться, т.к. повідомлення надішлеться всім вікнам з таким заголовком. Але це можна повернути на свою користь. Взагалі я так зробив для простоти. А ви самі вирішуйте. Якщо вікно знайдено йому можна надіслати повідомленняSendMessage, вказавши кому ми яке повідомлення надсилаємо. Я надсилаю своє повідомлення і без параметрів. Ось і все тепер клієнт.
Для клієнта також створимо проектMFC AppWizard, але тільки без кнопки. Точно такий же. Опишемо реакцію на наше повідомлення. І функцію відповідно.
І їїреалізація природно.
Запускайте дві програми. Клацніть по кнопці на сервері і клієнт відповідатиме звуком. Ось вони і порозумілися.