www.adept7.kiev.ua
| Форум| Гостевая| Ссылки| Программы| Исходные тексты| Наши партнеры.|
   
| Главная| Рассылки| Услуги| Библиотека| Новости| Авторам| Программистам| Студентам|
delphi c++ assembler
  http://tikitak.narod.ru ---- Главная страница сайта

Шаг 44 - Знакомимся с MFC Tracer

 Группа крови на рукаве
 Твой порядковый номер на рукаве
 Пожелай мне удачи в бою
 Пожелай мне.
 			В. Цой.

Создание проекта

Воспользуемся проектом из предыдущего шага.

Описание

MFC Tracer инструмент позволяющий программисту управлять выводом в окно Debug используя установку флагов в AFC.INI. Эти флаги управляют типом сообщений, которые выводятся в окно отладки.

Для начала работы необходимо открыть проект и запустить MFC Tracer это можно сделать здесь.

step44_1.gif (3533 b)

У Вас повится окно, в котором Вы можете установить тип сообщений выводящихся в окно отладки.

step44_2.gif (3331 b)

Нам надо установить разрешение трасировки Enable tracing и тип сообщений в данный момент, сообщения команды от елементов управления WM_COMMAND.

Теперь давайте посмотрим, что будет происходить при запуске программы с нажатием на кнопку OK, но для этого необходимо запустить проект в отладочном варианте. Вот так.

step44_3.gif (3247 b)

В окне откладки 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, где и определено это событие. Вот так.

step44_4.gif (2622 b)

.........
/*
 * 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
 

Rambler's Top100 Rambler's Top100

©  Adept Design Studio

Используются технологии uCoz