Як winamp приймає повідомлення

Як Winamp приймає повідомлення

Природно, можна послати будь-яке повідомлення будь-якого вікна, наприклад, повідомлення про те, щоб вікно змінило становище і розміри.







Приблизно така технологія і використовується в Winamp. Він обробляє повідомлення певного роду і виконує інструкції які несуть ці повідомлення. Наприклад, зупинити відтворення, відновити і так далі.

У цій статті буде написано два додатки: одне буде відсилати повідомлення, а інше приймати. Приступимо.

Створіть новий проект. Збережіть. Тепер потрібно буде написати код для обробки повідомлення. Додайте в розділ public:

Тепер потрібно написати саму процедуру:

Що і як тут робиться? Все дуже просто, message це структура, що прийшла в програму. LParam це те, що саме нас цікавить і що ми будемо передавати в подальшому.

Далі потрібно перейменувати форму, наприклад, в GetMessage. Потім використовуючи це ім'я будемо відсилати повідомлення.







На цьому з першим додатком все. Збережіть цей проект, він нам ще знадобиться, і створіть новий.

Викладаємо на форму Button і Edit. У Edit будемо вводити число, далі тиснемо кнопку і це число буде відправлено першій програмі.

Тепер потрібно написати функцію відсилання повідомлення:

Тепер про те як це працює. В змінної H буде зберігатися дескриптор першої програми. Але він там не з'явиться просто так - його потрібно буде отримати. Для його отримання використовуємо функцію FindWindow. Ось тут нам і знадобиться ім'я тієї форми - GetMessage. З цього імені дається ім'я класу, просто додається буква T. Звичайно, можна просто вказати назву вікна програми, але ж таке вікно може вже бути десь ще.

Далі йде перевірка, чи отримали ми дескриптор чи ні. Якщо в H число відмінне від 0, то щось отримали. А раз отримали відсилаємо за отриманим дескриптору повідомлення Command за допомогою функції SendMessage.

Тепер створюємо обробник onClick кнопки. Там пишемо:

Тут все ще легше. Викликаємо тільки що написану функцію, а в якості параметра подаємо те, що знаходиться в Edit.

Запускаємо обидві програми, вводимо в Edit число тиснемо кнопку і заголовок в першій програмі повинен змінитися. Як обробляти конкретне повідомлення вже вирішує кожен сам. На цьому все.







Схожі статті