![]() |
![]() |
|
![]() |
||||||||||||||||||
![]() |
![]() |
![]() |
||||||||||||||||
|
![]() |
|
![]() |
|
||||||||||||||
![]() |
![]() |
![]() |
Шаг 44 - Знакомимся с MFC TracerСоздание проектаВоспользуемся проектом из предыдущего шага. ОписаниеMFC Tracer инструмент позволяющий программисту управлять выводом в окно Debug используя установку флагов в AFC.INI. Эти флаги управляют типом сообщений, которые выводятся в окно отладки. Для начала работы необходимо открыть проект и запустить MFC Tracer это можно сделать здесь. У Вас появится окно, в котором Вы можете установить тип сообщений выводящихся в окно отладки. Нам надо установить разрешение трассировки Enable tracing и тип сообщений в данный момент, сообщения команды от элементов управления WM_COMMAND. Теперь давайте посмотрим, что будет происходить при запуске программы с нажатием на кнопку OK, но для этого необходимо запустить проект в отладочном варианте. Вот так. В окне отладки Debug вы должны увидеть что-то вроде этого. ........... Обратите внимание на выделенную строку. Это и есть команда по нажатию кнопки OK. Как узнать это. При нажатии на кнопку вырабатывается событие IDOK. Для отладки такие подробности в общих чертах надо знать. Для того чтобы в этом убедиться введите в тест следующую строку. //IDOK Наведите на неё курсор, нажмите правую кнопку мыши. Выберите пункт меню Goto to Defined IDOK вы окажетесь в файле WINUSER.H, где и определено это событие. Вот так. ......... Очень хорошо. Но данный инструмент позволяет, и отслеживать все сообщения, которые появляются в ходе выполнения программы, тем самым изучить многие тонкости работы MFC. Установите флаг Main Message dispath в MFC Trace Options, как устанавливали WM_COMMAND. Запускайте (F5). Теперь у Вас будет намного больше сообщений, но каких ! Вот отрывок из результата. WM_INITDIALOG мы обрабатываем в OnInitDialog. Но сколько не обрабатываем. Вы видите? Это самое сердце работы MFC. Это пульс программы. WndProc: hwnd=0xD016A, msg = WM_GETMINMAXINFO (0x0000, 0x0012FC50) | | Автор Каев Артем. |
![]() |
![]() |
![]() |
|