logo
Конспект по ООПиП ч

Список сообщений

Существует почти 900 различный сообщений. Поскольку обычно для организации перехвата сообщений в приложении используется ClassWizard, представленный в нем список будет значительно короче (ведь в него отбираются только те сообщения, которые подходят для выбранного класса). Отнюдь не каждое окно может получить то или иное сообщение. Например, только класс, являющийся наследником CListBox, может получить сообщение типа LB_SETSEL, которое заставляет элемент управления типа список передвинуть подсветку на некоторый элемент списка. Префикс в имени сообщения указывает тип окна, для которого предназначено сообщение или которое его породило. Какая разница, скажем, между ВМ-(button message) и ВN-(button notification) сообщением? ВМ-сообщение — это сообщение, направленное объекту-кнопке, например "Действуй так, как будто на тебе щелкнули". A BN-сообщение — это сообщение с кодом извещения, поступающего от объекта-кнопки окну, в котором эта кнопка находится и которое является "владельцем" кнопки. Это сообщение может, например, гласить: "Ой, на мне щелкнули!". То же самое справедливо для всех других модификаций сообщений, префиксы которых завершаются литерой М или N. Иногда префикс не заканчивается буквой М. Например, СВ — это префикс для сообщений от объекта—поля со списком, в то время как CBN является префиксом сообщения с кодом извещения, которое поле со списком передает окну-владельцу. Например, CBN_SELCHANGE— это сообщение от поля со списком, извещающее "родителя" о том, что пользователь выбрал другой элемент списка.