|
Дата: 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
Если хочешь получить более-менее полный ответ -- приведи свой код. мы не можем догадываться
.
|