ВУЗ:
Составители:
Рубрика:
- 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 - идентификатор (дескриптор) окна, которому передается со-
Страницы
- « первая
- ‹ предыдущая
- …
- 11
- 12
- 13
- 14
- 15
- …
- следующая ›
- последняя »