Вниз
Скачать: CL | DM;

Удержание кнопки мыши и кнопки...   Найти похожие ветки 

← →
MTsv DN   (2005-11-22 09:49) [0]

Привет...

Сразу прошу Модератора не перекидывать тему в WinAPI, т.к. там уже есть такая...

А вопрос такой... Мне нужно разделить работу, при нажатии на левую кнопку мыши...
В первом случае: обычный клик (WM_LBUTTONDOWN + WM_LBUTTONUP) -> Процедура 1...
Во втором случае: нажатие + удержание (WM_LBUTTONDOWN + ???????) -> Процедура 2...

Как это реализовать...

С Уважением MTsv DN


← →
Thaddy   (2005-11-22 11:32) [1]

The " ugly" easy way is to use an assignable typed constant as a flag and reset it after use. The better way is to write a helper object that catches the mouse and keyboard events and handles them. you need to catch both the mouse AND the keyboard events, so two distinctly different things. It is not difficult btw. Use OnMessage for example


← →
SPeller ©   (2005-11-22 12:45) [2]

Первое что приходит в голову - по сообщению BUTTONDOWN выставляешь флаг, например, fLButtonPressed := true; а на обработчике LBUTTONUP или ????? смотришь на этот флаг, если Да, то обрабатываешь, если Нет, то ничего не делаешь. А после обработки ставишь его в false. Понятно изложил мысль? )


← →
MTsv DN   (2005-11-22 12:54) [3]

Привет...

Это то понятно, но как быть с кликом... Т.е. неправильно выразился, как выделить удержание?..

В общем смысл такой: делаю свой скроллбар... У стандартного на кнопку вниз нажал - сработало (WM_VSCROLL, SB_LINEDOWN), а удерживаешь (WM_VSCROLL, SB_PAGEDOWN)

С Уважением MTsv DN


← →
-=Mike=-   (2005-11-22 16:12) [4]

а если таймер запустить в WM_LBUTTONDOWN и по его истечении если не было WM_LBUTTONUP начать крутить


← →
MTsv DN   (2005-11-22 19:02) [5]

> а если таймер запустить в WM_LBUTTONDOWN и по его истечении если не было WM_LBUTTONUP начать крутить
Да... Именно так и сделал...

С Уважением MTsv DN


← →
Vladimir Kladov   (2005-11-22 19:03) [6]

SetCapture, OnMouseUp->ReleaseCapture



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.028 c
3-1151673867
Juice
2006-06-30 17:24
2006.09.17
Ошибка: dbexpress error 0x0005 operation not supported


2-1156750209
C@N
2006-08-28 11:30
2006.09.17
Волшебные батоны....


1-1154447905
TStas
2006-08-01 19:58
2006.09.17
Можно ли как-то поубивать запущенные процессы Ворда и Экселя?


4-1147802521
ChainikDenis
2006-05-16 22:02
2006.09.17
Косяк с принтером, а точнее с определением его статуса


4-1147759000
Виталий___
2006-05-16 09:56
2006.09.17
Выключение компьютера




   Наверх