Кент Рейсдорф. BORLAND C++BUILDER. Раздел 3

Кент Рейсдорф. BORLAND C++BUILDER. Страница 342

Система сообщений Windows

От наблюдения за Windows мало пользы, если вы не знаете, что означают те или иные вещи. На самом деле, вы должны потратить большое количество времени, программируя в Windows, прежде чем будете понимать всю инфор­мацию, представляемую WinSight.

Программы, подобные C++Builder и Delphi, хороши тем, что позволяют создавать автономные приложения Windows за самое короткое время, которое только возможно. Если у этих сред программирования и есть недостаток, то он заключается в том, что вам не дается возможности узнать, что в дейст­вительности заставляет работать программу Windows.

Сообщения — именно они заставляют работать программу Windows. Боль­шое, большое количество сообщений. Windows посылает сообщения окну, чтобы инициировать какие-либо его действия или уведомить окно, что про­изошло некоторое событие. Например, если окно должно быть перерисовано, Windows посылает ему сообщение WM PAINT. Сообщение WM_PAINT ука­зывает окну на необходимость перерисовки. Когда изменяются размеры окна, Windows посылает сообщение WMWINDOWPOSCHANGING, которое уве­домляет окно, что его размеры и/или положение изменяются. За этим со­общением следуют сообщения WMJWINDOWPOSCHANGED и WM_SIZE после того, как размеры окна и его положение были изменены. В типичной среде Windows такого рода вещи происходят десятки или даже сотни раз в секунду.

Существует более 100 сообщений, которые Windows может посылать при­ложению. Я немного упоминал об этом в 5-й день, «Библиотеки классов С++ и модель визуальных компонентов», где обсуждались события в VCL. Многие из событий, на которые реагирует программа C++Builder — это со­общения Windows. Событие OnCreate генерируется в ответ на сообщение WM_CREATE, событие OnSize генерируется в ответ на сообщение WM_SIZE, событие OnMouseDown соответствует двум сообщениям: WM_LBUTTON- DOWN и WM RBUTTONDOWN. Этот список можно продолжать и продол­жать. C++Builder позволяет вам иметь дело с сообщениями на более высоком уровне, освобождая время для написания более важных частей приложения.

Web-дизайн (с) 2010 All rights reserved