2014-09-22 3 views
0

Я немного узнал об API Win32, но теперь хочу узнать MFC. В моей книге они сказали, что класс CWinApp управляет основной нитью приложения, но я не могу найти что-то вроде GetMessage, DispatchMessage функций этого класса. Итак, как он может начать цикл сообщений?Цикл сообщений в MFC

Кто-то объяснит это мне, пожалуйста. Извините, я новичок в MFC, и мой английский плохой. И где я могу найти несколько книг/учебников о MFC в Visual Studio?

ответ

1

Это все сделано в разделе CWinApp:Run.

После того, как InitInstance возвращает true, запускается CWinApp:Run, и его роль играет цикл сообщений. Этот цикл сообщений сложный, поскольку он также обрабатывает вызовы OnIdle, когда приложение не имеет ничего общего.

Просто загляните в код сума.

0

MFC имеет упрощенную обработку сообщений с использованием карт сообщений, программисту в основном не нужно беспокоиться о том, как работает цикл сообщений, как доставляются сообщения и как сопоставленные сообщения сопоставляются с определенными пользователем функциями. Я бы посоветовал вам разыгрывать CWnd -удаленные классы (например, фреймы, диалоги) и посмотреть, как отображаемые сообщения вызывают ваши функции.

A WM_MOUSEMOVE вызывает ваш OnMouseMove при условии ввода записи ON_WM_MOUSEMOVE - это интересно, что вы должны найти, как она работает. Играя с CWinApp -полученный класс - это не очень хорошая идея.