Win32 API разных классов в окне? - PullRequest
0 голосов
/ 23 марта 2012

Я недавно начал работать с Win32 API, и я пытаюсь сделать пару вещей.У меня есть проект, который будет использовать около 4-5 окон.Я хочу разделить каждый из них в отдельный файл cpp, где каждый имеет свое собственное сообщение Loop.Как передать информацию из окна в окно? (Есть какая-то точка входа?), В данный момент я создаю все окна во время case WM_CREATE:, и я показываю их по мере необходимости.хороший дизайн ООП, но с этим возникли проблемы, моя главная проблема - связь между окнами.У меня достаточно опыта в C # и C ++, и кроме этого, win32 API не является проблемой.

Спасибо за вашу помощь!

Ответы [ 2 ]

2 голосов
/ 23 марта 2012

Я не думаю, что вам нужно сообщение для каждого окна loop , если вы не хотите, чтобы каждое окно имело собственный поток. Вам, вероятно, нужно вместо окна процедура .

Каждый класс окна имеет свою собственную оконную процедуру, которую вы регистрируете, устанавливая поле lpfnWndProc структуры WNDCLASS перед передачей его в RegisterClass . Как только вы это сделаете, вы можете использовать этот класс при создании нового окна с CreateWindow .

В вашем случае вы, вероятно, захотите реализовать оконную процедуру, чтобы она принимала пользовательские сообщения (WM_APP + x), а затем передавала пользовательские сообщения между окнами, используя PostMessage (для асинхронной связи) или SendMessage (для синхронной связи). При необходимости вы можете создать отдельные классы окон и оконные процедуры для разных окон. Один цикл обработки сообщений способен передавать сообщения всем этим процедурам.

1 голос
/ 23 марта 2012

Классический способ связи между окнами - отправка / публикация сообщений:

SendMessage

PostMessage

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...