BIGLIB
  большущая библиотека (9812 книг), можно не только прочитать но и скачать бесплатно
 
АСТРОЛОГИЯ
  книги по астрологии
 
КРИМИНАЛ
  книги про криминал
 
ДЕТЕКТИВЫ
  детективы известных
   писателей
 
ФАНТАСТИКА
  фентези, фантастика,   фантастические повести
 
ПРИКЛЮЧЕНИЯ
  книги про приключения,   путешествия
 
ПОЛИТИКА
  книги про политиков,   репрессии
 
ПСИХОЛОГИЯ
  разнообразная литература   по психологии
 
КЛАССИКА
  классическая литература
 
КОМПЬЮТЕРНАЯ
  ЛИТЕРАТУРА
  про компютерное железо,   документация, языки   программирования
 
РЕЛИГИЯ, АТЕИЗМ
  книги про религию
 
ФИЛОСОФИЯ
  книги, которые заставляют   задуматься над   окружающим тебя миром.
 
ЭНЦИКЛОПЕДИИ
  самые интересные   энциклопедии на
   разные темы
 
МЕДИЦИНА
  медицинские книги,   методички,
   народные лечебники
 
КУЛИНАРИЯ
  рецепты тортов,   консервирование,
  все о спиртных
  напитках.
 
СТИХИ
  стихи популярных и не   очень авторов
 
ТВОРЧЕСТВО
  народное творчество,   стихи, песни и т.д.
 
ЮМОР
  анекдоты, приколы,   смешные истории
 
ЛЮБОВНЫЙ РОМАН
  мир высоких чувств и   любовных грез
 
ЭРОТИКА
  эротические рассказы,   книги о технике секса,   кама-сутра и др.




adfun.ru
Rambler's Top100 Rambler's Top100
    НА ГЛАВНУЮ
    РЕФЕРАТЫ
    ТОСТЫ
    ТЕСТЫ
    АВТО
    ДЛЯ СТУДЕНТА
    КНИГИ
    КОНТАКТ
 
Turbo Debugger 3.0 #3-3
Автор ""
Размер 414526 Байт
Страница 17 из 43
СКАЧАТЬ КНИГУ ЦЕЛИКОМ

            Когда пользователь  выбирает элемент меню,  Windows посылает
       сообщение WM_COMAND тому окну,  которому данное меню принадлежит.
       Параметр сообщения wParam содержит идентификатор выбираемого эле-
       мента  меню.  Когда   окно   ObjectWindows   получает   сообщение
       WM_COMMAND, оно просматривает индексы диспетчеризации объекта ок-
       на в поиске значения CM_FIRST + wParam.  SelectBlackPen имеет ин-
       декс CM_FIRST + CM_BLACK, где CM_BLACK имеет значение 104.

            Чтобы определить,  каким является параметр wParam командного
       сообщения PenіBlack,  вам нужно сообщить TDW, что он должен оста-
       навливать выполнение при получении сообщения WM_COMMAND. Тогда вы
       можете запустить программу,  сделать выбор в меню и проверить па-
       раметр wParam,  чтобы посмотреть, не совпадает ли он с константой

       TDeb 3.0 #3-3                = 73 =

       CM_BLACK.

            Перед тем, как установить точку останова, вам нужно вернуть-
       ся  обратно   в   TDW.   Закройте   окно   прикладной   программы
       ColorScribble, затем, когда вы вернетесь в окно Module, для пере-
       загрузки программы  TDODEMOB  используйте клавиши Ctrl-F2.  Когда
       выведется окно Module, следующим шагом будет установка точки ост-
       анова по сообщению окна с помощью одного из двух методов, в зави-
       симости  от   того,    разрешена    или    запрещена    поддержка
       ObjectWondows.

            По умолчанию    специальная    поддержка    сообщений   окон
       ObjectWondows отсутствует.  Вы не можете использовать описанный в
       вашей программе объект окна для установки точки останова по сооб-
       щению.  Вместо этого нужно использовать описатель окна.  Если  вы
       хотите использовать оконный объект (что легче, но может замедлить
       отладку при наличии точки останова по сообщению), то нужно запус-
       тить утилиту TDINST с параметром командной строки -w, выбрать ко-
       манду OptionsіSource Debugging (ПараметрыіОтладка исходного кода)
       и проверить параметр OWL Message Window.

                 Примечание: Информация о TDINST содержится в Приложении
            D.



       TDeb 3.0 #3-3                = 74 =

            Задание точки останова по сообщению окна по описателю
       ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

            Если поддержка  ObjectWindows у вас не разрешена,  вы должны
       установить точку прерывания по сообщению окна с помощью  описате-
       ля. Поскольку    большинство   установок   окон   выполняются   в
       ObjectWindow, для получения указателя придется пойти окольным пу-
       тем.

            Начальные установки      окна      выполняются      функцией
       InitMainWindow, но описатель устанавливается позднее.  Чтобы  уп-
       равление снова вернулось в TWD,  вы можете установить точку оста-
       нова на  одной   из   функций   работы   с   "мышью"   (например,
       WMLButtonDown), запустить  программу,  затем использовать "мышь",
       чтобы программу остановилась на точке останова. (Если точка оста-
       нова находится  на  WMLButtonDown,  вы можете нажать левую кнопку
       "мыши".)

            Другой метод   заключается   в    переопределении    функции
       ObjectWindows SetupWindow, которая инициализирует описатель, бла-
       годаря чему вы можете получить управление после каждой  инициали-
       зации указателя.  Данная функция переопределяется в TDODEMOB, как
       виртуальная функция. Она определяется следующим образом:

            void ScribbleWindow::SetupWindow():
            {
                   TWindow::SetupWindow();
            }

            Чтобы воспользоваться  этим, позиционируйте курсор на закры-
       вающей скобке функции SetupWindow,  затем нажмите клавишу F4  для
       выполнения программы до этой точки.

            Независимо от используемого метода, когда TDW вновь получает
       управление, для установки точек останова по  сообщению WM_COMMAND
       сделайте следующее:

            1. Выберите команду DataіInspect (ДанныеіПроверка) и  прове-
               рьте объект окна MainWindow. Поскольку он в данный момент
               находится вне  области  действия,  вам нужно использовать
               следующий синтаксис переопределения:

                  WinMain#MyAppMainWindow

               Так как MyApp имеет тип  SCribbleWindow  (порожденный  от
               класса  TApplication,  элементом данных которого является
               MainWindow), MainWindow является элементом MyApp.

            2. Увеличьте окно Inspector, благодаря чему в верхней облас-
               ти  вы можете видеть элементы данных.  HWindow - это эле-
               менты данных, который содержит описатель окна.

            3. Позиционируйте курсор на HWindow,  затем нажмите  клавиши





TDeb 3.0 #3-3 = 75 = Shift-F3 и скопируйте его в окно Clipboard. 4. Выберите команду ViewіWindows Message (ОбзоріСообщения Windows) для вывода диалогового окна Windows Massage (Со- общения Windows). 5. Для вывода диалогового окна Add (Добавление) в верхней левой области нажмите клавиши Ctrl-A. Выберите "кнопку" Handle (Описатель), затем позиционируйте курсор на текс- товом поле ввода. 6. Нажмите для вывода окна Clipboard клавиши Shift-F4. Пози- ционируйте курсор на HWindow, выберите "кнопку" Contents (для копирования HWindow - значения описателя), затем вы- берите "кнопку" OK для копирования описателя в текстовое поле ввода. 7. В текстовом поле ввода добавьте перед значением описателя Ox, чтобы указать, что это шестнадцатиричное число, затем нажмите Enter. 8. Перейдите в правую верхнюю область и наберите WM_COMMAND. Вы увидите, что как только вы начнете набор символов, вы- выдается диалоговое окно Set Message Filter (Установка фильтра сообщения). 9. Установить параметр Action (Действие) для данного сообще- ния в значение Break (Прерывание), затем для установки точки прерывания по данному сообщению нажмите клавишу Enter. Программа будет возвращать управление в TDW всякий раз, ког- да вы делаете выбор меню, поскольку при этом генерируется команда WM_COMMAND. TDeb 3.0 #3-3 = 76 = Установка точки прерывания по сообщению на объекте окна ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Если вы используете для разрешения поддержки точки прерыва- ния по сообщению окна в ObjectWindows программу TDINST, то можете использовать для установки точки останова по сообщению оконный объект MainWindow. 1. Переместите курсор на закрывающую фигурную скобку функции InitMainWindow и нажмите клавишу F4 для выполнения прог- раммы до этой точки. 2. Когда вы снова увидите окно Module, для вывода диалогово- го окна OWL Windows Messages используйте команду ViewіWindows Messagges (ОбзоріСообщения Windows). 3. В левой верхней области наберите MainWindow и нажмите клавишу F4. 4. В верхней правой области наберите WM_COMMAND, выберите "кнопку" Break, затем нажмите клавишу Enter, чтобы уста- новить точку останова по данному сообщению. Теперь программа будет возвращать управление в TDW каждый раз когда вы делаете выбор меню, поскольку при этом генерируется сообщение WM_COMMAND. Проверка wParam ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Вы можете возобновить выполнение программы, нажав клавишу F9. Выберите в меню команду PenіBlack (Черный цвет пера). После того, как вы выберите черное перо, TDW останавливает выполнение и выводит на экран окно CPU, показывая, что в момент прерывания программа выполняла код ядра Windows. Закройте окно CPU, нажав клавиши Alt-F3. Если это необходимо, снова выведите окно Windows Messages (Сообщения Windows). Увеличьте окно до полного размера, благодаря чему вы сможете видеть в нижней области все сообщение. Вы можете видеть, что окно получает сообщение WM_COMMAND со значением в wParam 204 (шестнадцатиричное значение 00CC). Но константа CM_BLACK имеет значение 104, а не 204. Это является причиной то- го, что не вызывалась виртуальная функция - прикладная программа искала идентификатор CM_FIRST + 204, а его действительным значе- нием было CM_FIRST + 104. Значение 204 было задано в определении файла TDODEMO.RC. Данной ошибки можно было бы избежать, используя для меню тот же идентификатор, что и в файле заголовка, и поместив оператор #INCLUDE для этого файла заголовка в начало файла .RC. Вместо TDeb 3.0 #3-3 = 77 = этого значения были использованы в определении меню. При этом от- ветственность за перекрестную проверку значений возлагается на программиста. Если вы отредактируете TDODEMOB.H измените CM_BLACK на 204,


Страницы : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 [17] 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43


adfun.ru









Форум раскрутка сайта и интернет-реклама
реклама - рекламное агентство -
Интернет PR агентство чат и форум
волчат знакомства - сайт знакомств
бесплатные компьютерные игры
фото знакомства
новые стеклопакеты -
качественное остекление балконов
портал - пластиковые окна -
закажите окна пвх в Москве

частная стоматология в Москве:
надежная стоматологическая клиника
протезирование зубов и
отбеливание зубов в стоматологии
Музыка - скачать mp3 музыка
каталог партнерские программы
ручной бесплатный обмен ссылками цифровые камеры цифровые фотоаппараты -
цифровые видеокамеры

театры - заказ билетов в театр -
магазин - продажа компьютеров
в Москве форум Испания - жилье -
недвижимость в испании

турфирма - испания туры
Переводы - бюро переводов
Законы - закон о товарных знаках,
Грузовые перевозки. АсМАП. Дальнобой закон о рекламе
Интернет казино
реклама на форуме и контекстная реклама
на Яндексе Баннерная сеть и
интернет каталог сайтов Holiday.Ru
Форумы политика, лучшие анекдоты
знакомства.