Шаг 293 - Сообщения от мыши

Вашей программе поступает огромное количество сообщений от мыши. Условно их можно разделить на два типа:

Вспомним, что не клиентская область это кнопки сворачивания, заголовок окна, меню и так далее. Так вот и эти сообщения можно обрабатывать в программе. Давайте посмотрим какие сообщения поступают из клиентской области.

Сообщения клиентской области:

Прототипы этих сообщений содержат два параметра, например:

afx_msg void OnMouseMove
( 
	UINT nFlags,
	CPoint point 
);

Первый параметр это битовая маска, с помощью которой можно определить была ли нажата виртуальная клавиша во время движения мыши. Вот какие клавиши могут быть:

Определить была ли нажата эта клавиша можно воспользовавшись логическим оператором &, вот так например:

If (nFlags & MK_CONTROL)
{
	// CTRL нажата
} else {
	// CTRL не нажата
}

Второй параметр Point говорит о координатах относительно верхнего левого угла окна.

Сообщения из не клиенткой области:

Прототипы у этих функций следующие:

afx_msg void OnNcMButtonDblClk
( 
	UINT nHitTest, 
	CPoint point 
);

nHitTest показывает где именно на не клиентской части производить нажатие. Об этом смотри в "Шаг 45 - Константы неклиентской области".


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 1.01.2001