http://tikitak.narod.ru ---- Главная страница сайта
Шаг 44 - Знакомимся с MFC Tracer
Группа крови на рукаве
Твой порядковый номер на рукаве
Пожелай мне удачи в бою
Пожелай мне.
В. Цой.
Создание проекта
Воспользуемся проектом из предыдущего шага.
Описание
MFC Tracer инструмент позволяющий программисту управлять выводом в окно Debug используя установку флагов в AFC.INI. Эти флаги управляют типом сообщений, которые выводятся в окно отладки.
Для начала работы необходимо открыть проект и запустить MFC Tracer это можно сделать здесь.
У Вас повится окно, в котором Вы можете установить тип сообщений выводящихся в окно отладки.
Нам надо установить разрешение трасировки Enable tracing и тип сообщений в данный момент, сообщения команды от елементов управления WM_COMMAND.
Теперь давайте посмотрим, что будет происходить при запуске программы с нажатием на кнопку OK, но для этого необходимо запустить проект в отладочном варианте. Вот так.
В окне откладки Debug вы должны увидеть что-то вроде этого
...........
Loaded 'D:\WINNT\system32\MSIDLE.DLL', no matching symbolic information found.
SENDING command id 0x0001 to CDialog target.
The thread 0x92 has exited with code 0 (0x0).
The program 'D:\project\testdia\Debug\testdia.exe' has exited with code 0 (0x0).
Обратите внимание на выделенную строку. Это и есть команда по нажатию кнопки OK. Как узнать это. При нажатии на кнопку вырабатывается событие IDOK. Для отладки такие подробности в обших чертах надо знать.
Для того чтобы в этом убедиться введите в тест следующую строку
//IDOK
Наведите на неё курсор на нажмите правую кнопку мыши. Выберите пункт меню Goto to Defined IDOK вы окажетесь в файле WINUSER.H, где и определено это событие. Вот так.
.........
/*
* Dialog Box Command IDs
*/
#define IDOK 1
..........
Очень хорошо. Но данный инструмент позволяет и отслеживать все сообщения, которые появляются в ходе выполнения программы, тем самым изучить многие тонкости работы MFC.
Установите флаг Main Message dispath в MFC Trace Options, как устанавливали WM_COMMAND. Запускайте (F5).
Теперь у Вас будет намного больше сообщений, но каких !!! Вот отрывок из результата. WM_INITDIALOG мы обрабатываем в OnInitDialog. Но сколько не обрабатываем. Вы видете ?!. Это самое сердце работы MFC. Это пульс программы.
WndProc: hwnd=0xD016A, msg = WM_GETMINMAXINFO (0x0000, 0x0012FC50)
WndProc: hwnd=0xD016A, msg = WM_NCCREATE (0x0000, 0x0012FC40)
WndProc: hwnd=0xD016A, msg = WM_NCCALCSIZE (0x0000, 0x0012FC70)
WndProc: hwnd=0xD016A, msg = WM_CREATE (0x0000, 0x0012FC40)
WndProc: hwnd=0xD016A, msg = WM_SETFONT (0x6A0A0416, 0x00000000)
WndProc: hwnd=0xD016A, msg = WM_INITDIALOG (0x50168, 0x00000000)
WndProc: hwnd=0xD016A, msg = WM_WINDOWPOSCHANGING (0x0000, 0x0012FAE8)
WndProc: hwnd=0xD016A, msg = WM_WINDOWPOSCHANGED (0x0000, 0x0012FAE8)
Предыдущий Шаг | Следующий Шаг | Оглавление By Artem.
Используются технологии uCoz
|