MaterStudiorum.ru - домашняя страничка студента.
Минимум рекламы - максимум информации.


Авиация и космонавтика
Административное право
Арбитражный процесс
Архитектура
Астрология
Астрономия
Банковское дело
Безопасность жизнедеятельности
Биографии
Биология
Биология и химия
Биржевое дело
Ботаника и сельское хоз-во
Бухгалтерский учет и аудит
Валютные отношения
Ветеринария
Военная кафедра
География
Геодезия
Геология
Геополитика
Государство и право
Гражданское право и процесс
Делопроизводство
Деньги и кредит
Естествознание
Журналистика
Зоология
Издательское дело и полиграфия
Инвестиции
Иностранный язык
Информатика
Информатика, программирование
Исторические личности
История
История техники
Кибернетика
Коммуникации и связь
Компьютерные науки
Косметология
Краткое содержание произведений
Криминалистика
Криминология
Криптология
Кулинария
Культура и искусство
Культурология
Литература и русский язык
Литература(зарубежная)
Логика
Логистика
Маркетинг
Математика
Медицина, здоровье
Медицинские науки
Международное публичное право
Международное частное право
Международные отношения
Менеджмент
Металлургия
Москвоведение
Музыка
Муниципальное право
Налоги, налогообложение
Наука и техника
Начертательная геометрия
Новейшая история, политология
Оккультизм и уфология
Остальные рефераты
Педагогика
Полиграфия
Политология
Право
Право, юриспруденция
Предпринимательство
Промышленность, производство
Психология
Психология, педагогика
Радиоэлектроника
Разное
Реклама
Религия и мифология
Риторика
Сексология
Социология
Статистика
Страхование
Строительные науки
Строительство
Схемотехника
Таможенная система
Теория государства и права
Теория организации
Теплотехника
Технология
Товароведение
Транспорт
Трудовое право
Туризм
Уголовное право и процесс
Управление
Управленческие науки
Физика
Физкультура и спорт
Философия
Финансовые науки
Финансы
Фотография
Химия
Хозяйственное право
Цифровые устройства
Экологическое право
Экология
Экономика
Экономико-математическое моделирование
Экономическая география
Экономическая теория
Эргономика
Этика
Юриспруденция
Языковедение
Языкознание, филология
    Начало -> Информатика, программирование -> Работа с окнами приложений

Название:Работа с окнами приложений
Просмотров:54
Раздел:Информатика, программирование
Ссылка:Скачать(33 KB)
Описание: Сообщения мыши, работа с мышью Отдельно надо рассмотреть работу с мышью. Обычно, когда курсор мыши находится над каким-либо окном, это окно получает сообщения от мыши, причем внешний вид курсора мыши определен

Часть полного текста документа:

Сообщения мыши, работа с мышью

Отдельно надо рассмотреть работу с мышью. Обычно, когда курсор мыши находится над каким-либо окном, это окно получает сообщения от мыши, причем внешний вид курсора мыши определен при регистрации класса окна - поле .hCursor структуры WNDCLASS. Если мы хотим использовать мышь в нашем приложении, то мы должны обрабатывать некоторые сообщения, посылаемые мышью.

WM_NCHITTEST                                  0 y & x

При перемещения мыши через область, занятую окном, окно получает сообщения WM_NCHITTEST, которые используются для того, что бы определить месторасположение мыши - на рамке, в углах рамки, на заголовке, во внутренней области и пр. Это должно быть определено при обработке данного сообщения и возвращаемый результат характеризует положение курсора мыши. Например HTCLIENT указывает, что курсор находится над внутренней областью окна, HTTOPLEFT - над верхним левым уголком рамки окна, размеры которого могут быть изменены и пр. Положение курсора указано в координатах экрана.

WM_NCMOUSEMOVE                         wHitTest     y & x

Если WM_NCHITTEST определяет, что курсор находится над внешней областью окна, то окно получает сообщения WM_NCMOUSEMOVE; Y и X координаты заданы относительно экрана.

WM_NCLBUTTONDOWN                    wHitTest     y & x
WM_NCLBUTTONUP  wHitTest                   y & x
WM_NCRBUTTONDOWN                             wHitTest     y & x
WM_NCRBUTTONUP  wHitTest                   y & x
WM_NCMBUTTONDOWN                            wHitTest     y & x
WM_NCMBUTTONUP wHitTest                   y & x
WM_NCLBUTTONDBLCLK                         wHitTest     y & x
WM_NCRBUTTONDBLCLK                         wHitTest     y & x
WM_NCMBUTTONDBLCLK                        wHitTest     y & x

Эти сообщения посылаются при нажатии/отпускании соответствующих кнопок мыши над внешней областью окна; Положение курсора указано в координатах экрана, wParam указывает зону, над которой произошло данное событие.

WM_MOUSEMOVE                               nKeys    y & x

Когда мышь перемещается во внутренней области окна (WM_NCHITTEST возвратило HTCLIENT) то оконная процедура обрабатывает поступающие сообщения WM_MOUSEMOVE, указывающие положение мыши в координатах окна и состояние некоторых клавиш (ctrl, shift и три кнопки мыши).

WM_LBUTTONDOWN                         nKeys    y & x
WM_LBUTTONUP        nKeys                        y & x
WM_RBUTTONDOWN nKeys                        y & x
WM_RBUTTONUP        nKeys                        y & x
WM_MBUTTONDOWN                                  nKeys    y & x
WM_MBUTTONUP       nKeys                        y & x

Эти сообщения посылаются окну, если Вы нажали одну из кнопок мыши, когда курсор находится над окном. Параметр nKeys указывает состояние некоторых клавиш.

WM_LBUTTONDBLCLK                     nKeys    y&x
WM_RBUTTONDBLCLK                               nKeys    y&x
WM_MBUTTONDBLCLK                              nKeys    y&x

Это сообщения о двух быстрых нажатиях на одну кнопку мыши. Обычно окно их не получает. Если Вы хотите использовать эти сообщения, то Вы должны при регистрации класса окна указать стиль CS_DBLCLKS.

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

Вы можете легко изменять внешний вид курсора, изменяя его хендл в структуре класса окна:

UINT SetClassWord( hWnd, GCW_HCURSOR, hNewCursor );

однако при этом изменяется курсор для всех окон, принадлежащих к этому классу. ............





Нет комментариев.



Оставить комментарий:

Ваше Имя:
Email:
Антибот:  
Ваш комментарий:  
 
     

Вечно с вами © MaterStudiorum.ru