Кент Рейсдорф. BORLAND C++BUILDER. Раздел 4
Кент Рейсдорф. BORLAND C++BUILDER. Страница 419
Обработка сообщений собственными силами требует применения некоторой дополнительной техники, о которой вы узнаете из этого раздела.
Более подробно о сообщениях Windows
Каким образом возникают сообщения Windows? Некоторые сообщения посылаются непосредственно Windows для указания окну на необходимость выполнения каких-либо действий или уведомления окна о некотором событии в системе. В других случаях сообщения посылаются программистом или библиотекой, которую он использует (VCL, OWL или MFC). Независимо от того, кто посылает сообщение, можете не сомневаться, что каждую миллисекунду в системе циркулирует множество сообщений.
Типы сообщений
В основном, сообщения делятся на две категории:
? Командные сообщения
? Уведомляющие сообщения
Командные сообщения вызывают какое-то действие либо в Windows, либо внутри определенного элемента управления. Уведомляющие сообщения посылаются Windows для того, чтобы информировать вас о некотором событии. Чтобы проиллюстрировать различие между этими двумя типами сообщений, посмотрим на стандартный элемент редактирования.
Стандартный элемент редактирования Windows имеет почти 80 командных сообщений и около 20 уведомляющих сообщений. Удивлены? Это действительно так, и при этом не забудьте, что элемент редактирования — это только один из множества элементов управления Windows.
Программист, пишущий приложение для Windows на Си, должен посылать множество сообщений для выполнения стоящей перед ним задачи. Например, чтобы получить значение длины выбранного в данный момент текста в элементе редактирования, необходим следующий код:
int start; int end;
long result = SendMessage(hWndEdit, EM_GETSEL, 0, 0);
start = LOWORD(result); end = HIWORD(result); int length = end - start;