×
Namespaces

Variants
Actions

Обработка событий от указателя

From Nokia Developer Wiki
Jump to: navigation, search
Article Metadata

Протестировано с
Устройство(а): Nokia 5800 XpressMusic

Совместимость
Платформа(ы):
S60 5th Edition

Платформа безопасности
Необходимость подписи: Self-Signed
Возможности (Capabilities): None

Статья
Перевод:
A.A.M.
Последнее редактирование: hamishwillee (19 Oct 2011)

Статья базируется на материалах англоязычной части Wiki, все они перечислены в разделе ссылки.


Contents

Обзор

Этот пример демонстрирует технику обработки событий от указателя (например, прикосновений стилуса) в собственных элементах управления и дальнейшей передачи событий нужному объекту. Определение объекта, которому необходимо передать событие, происходит путем получения координат указателя с последующей проверкой, входит ли точка с такими координатами в область расположения элемента управления.

Пример

Допустим у нас в контейнере имеется два элемента управления (например, текстовых поля), которые имеют имена iEdwin1 и iEdwin2.

.mmp

CAPABILITY  None
LIBRARY cone.lib

.cpp

#include <COECNTRL.H> 
 
void CCustomContainer::HandlePointerEventL(const TPointerEvent& aPointerEvent)
{
// Проверяем, попал ли указатель в область расположения одного из наших полей
if( iEdwin1->Rect().Contains( aPointerEvent.iPosition ) )
{
// пользователь кликнул на поле edwin1, передаем полю событие //
iEdwin1->HandlePointerEventL( aPointerEvent );
}
else if( iEdwin2->Rect().Contains( aPointerEvent.iPosition ) )
{
// пользователь кликнул на поле edwin2, передаем полю событие //
iEdwin2->HandlePointerEventL( aPointerEvent );
}
else
{
// передаем событие базовому классу //
CCoeControl::HandlePointerEventL(aPointerEvent);
}
}

Ссылки

При подготовке статьи использованы следующие материалы:

This page was last modified on 19 October 2011, at 08:01.
63 page views in the last 30 days.
×