Разработка прикладных программ для ОС WINDOWS с помощью интегрированных сред Delphi / C++Builder. Баканов В.М. - 13 стр.

UptoLike

Составители: 

- 13 -
// обработать другие сообщения Windows
default: // обработчик по умолчанию (обязательная часть)
return DefWindowProc(hWnd, msg, wParam, lParam);
}
return 0L;
} // конец процедуры
Выше было сказано, что каждое WINDOWS-окно имеет (связанную с
ним) функцию WinProc. WinProc-функции часто имеют весьма громоздкий
вид вследствие перенасыщенности операторами switch/case (иногда вложен-
ными), что затрудняет непосредственную отладку программ. Однако тела
case-вариантов в различных (соответствующих разным окнам приложения)
WinProc-функциях в основном повторяются. С переходом на ООП
-
технологию положение сильно упростилось - пишется одна (родительская)
базовая функция WinProc, от которой наследуются (с модификацией - обыч-
но заключающейся в дополнении возможностей) соответствующие процеду-
ры для каждого окна.
Важно отметить, что позиция default в списке оператора switch обяза-
тельна (при вызове функции DefWindowProc происходит обработка сообще-
ний, не учтенных соответствующими case-
вариантами; в большинстве случа-
ев процедура DefWindowProc является пустой - т.е. все неучтенные сообще-
ниятеряются’).
2.З. ДВА СПОСОБА ПЕРЕДАЧИ СООБЩЕНИЙ
Сообщения может генерировать не только сама система WINDOWS, но и
любая из поддерживаемых ею программ (причем отправить сообщение мож-
но как самой себе, так и любой другой активной программе).
Для передачи
сообщений в окно существуют два различных способа - непрямой (он же от-
сроченный) и прямой (реализуемые WINDOWS API-функциями PostMessage
и SendMessage соответственно, прототипы этих функций в С-транскрипции
приведены ниже).
BOOL
PostMessage(HWND hwnd, // дескриптор окна, которому
// передается сообщение
UINT Msg, // собственно сообщение
WPARAM wParam, // первый параметр сообщения
LPARAM lParam); // второй параметр сообщения
Здесь hWnd - идентификатор (дескриптор) окна, которому передается со-
                                   - 13 -


   // обработать другие сообщения Windows

   default: // обработчик по умолчанию (обязательная часть)
   return DefWindowProc(hWnd, msg, wParam, lParam);
   }

   return 0L;

} // конец процедуры

    Выше было сказано, что каждое WINDOWS-окно имеет (связанную с
ним) функцию WinProc. WinProc-функции часто имеют весьма громоздкий
вид вследствие перенасыщенности операторами switch/case (иногда вложен-
ными), что затрудняет непосредственную отладку программ. Однако тела
case-вариантов в различных (соответствующих разным окнам приложения)
WinProc-функциях в основном повторяются. С переходом на ООП-
технологию положение сильно упростилось - пишется одна (родительская)
базовая функция WinProc, от которой наследуются (с модификацией - обыч-
но заключающейся в дополнении возможностей) соответствующие процеду-
ры для каждого окна.
    Важно отметить, что позиция default в списке оператора switch обяза-
тельна (при вызове функции DefWindowProc происходит обработка сообще-
ний, не учтенных соответствующими case-вариантами; в большинстве случа-
ев процедура DefWindowProc является пустой - т.е. все неучтенные сообще-
ния ‘теряются’).

2.З. ДВА СПОСОБА ПЕРЕДАЧИ СООБЩЕНИЙ

   Сообщения может генерировать не только сама система WINDOWS, но и
любая из поддерживаемых ею программ (причем отправить сообщение мож-
но как самой себе, так и любой другой активной программе). Для передачи
сообщений в окно существуют два различных способа - непрямой (он же от-
сроченный) и прямой (реализуемые WINDOWS API-функциями PostMessage
и SendMessage соответственно, прототипы этих функций в С-транскрипции
приведены ниже).

BOOL
PostMessage(HWND hwnd, // дескриптор окна, которому
                         // передается сообщение
           UINT Msg, // собственно сообщение
           WPARAM wParam, // первый параметр сообщения
           LPARAM lParam); // второй параметр сообщения

   Здесь hWnd - идентификатор (дескриптор) окна, которому передается со-