QNX RTP Logo QNX Realtime Platform: Русский Портал QNX
Thursday, 20 Nov 2008 20:32
Меню

Проект OpenNET - все о Unix
Главная

 · Начало · Статистика · Поиск ·

  QNX.ORG.RU —› Программирование под Photon —› странное поеведение PtAddEventHandler

Посл.ответ Сообщение


Дата: 5 Сен,  18:08

вобщем хочу виджету, который на форме, задать программно обработчики событий типа RAW.
вот код:

PtRawCallback_t cb[] = {
{Ph_EV_BOUNDARY,&OnMouseBound,NULL},
{Ph_EV_BUT_PRESS,&OnMousePress,NULL},
{Ph_EV_BUT_RELEASE,&OnMouseRelease,NULL}
};

PtAddEventHandlers(sv_arr[0]->Border,cb,3);

это делаю в процедуре при открытии формы.
вобщем события нажатия и отпускания мыши срабатывают, а наведения курсора в область и его выхода - нет.

я таким способом хотел установить обработчики для большого множества однотипных виджтов на форме.

если задавать эти события через билдер, то все работает нормлаьно.


Дата: 8 Сен,  08:13 · Поправил: qnxloder

Я делал так:
PtAddEventHandler(wgt, Ph_EV_PTR_MOTION_BUTTON | Ph_EV_BUT_PRESS | Ph_EV_BOUNDARY, manage_cb, NULL);

и в колбэке:
PhPointerEvent_t *pointer = (PhPointerEvent_t *)PhGetData(cbinfo->event);
if ( (cbinfo->event->type == Ph_EV_BOUNDARY) &&
(cbinfo->event->subtype == Ph_EV_PTR_ENTER) ||
(cbinfo->event->type == Ph_EV_BUT_PRESS) ) - это при входе курсора в виджет,


Дата: 8 Сен,  11:31

вобщем я практически так же и делал - но виджет в упор не хочет реагировать на мышь, а на нажатия - все ок.
может в флагах что то надо выставить?
просто если через билдер задавать вручную события - то они срабатывают все. но мне надо задать программно ибо этих виджетов на форме много.


Дата: 8 Сен,  16:14

Будь внимательней Фрегл, у всех получается и у тебя выедет!


Дата: 8 Сен,  16:17

Если хочешь получить более-менее полный ответ -- приведи свой код. мы не можем догадываться
.

You must login to post.

©   2000-2003 Команда проекта QNX.ORG.RU // QNX.ORG.RU Team
Авторы проекта: Дмитрий Алексеев [dmi] и Дмитрий Васильев. Техническое сопровождение проекта: Игорь Сорокин [isorokin]. Информационное сопровождение: Дмитрий Алексеев [dmi]
QNX - зарегистрированная торговая марка QNX Software Systems, Ltd., Canada. Остальные упоминаемые на сайте торговые марки и логотипы являются исключительно собственностью их уважаемых владельцев. Ничьи права не затронуты. Материалы сайта не могут быть скопированы и где-либо использованы в той или иной форме без письменного разрешения разработчиков сайта.
Powered by Mambo Open Source