Форум: "WinAPI";
Текущий архив: 2006.02.05;
Скачать: [xml.tar.bz2];
ВнизУдержание кнопки мыши и кнопки... Найти похожие ветки
← →
MTsv DN (2005-11-21 14:17) [0]Надо отследить удержание кнопки мыши и кнопок "Вверх"/"Вниз". Например, при пролистывании ListBox"a... Как узнать, когда просто нажата кнопка, а когда удерживается...
С Уважением MTsv DN
← →
SergGG © (2005-11-21 15:15) [1]Я тут налабал:
ListBox1: TListBox;
type TListB = class(TListBox)
private
procedure ClickUpDown(var Msg:TWMScroll);message WM_VSCROLL;
end;
implementation
procedure TForm1.FormCreate(Sender: TObject);
begin
LBox:=TListB.Create(Form1);
LBox.Parent:=Form1;
LBox.Width:=100;
LBox.Height:=100;
for i:=1 to 10 do
LBox.Items.Add(IntToStr(i));
end;
procedure TListB.ClickUpDown;
begin
case Msg.ScrollCode of
0: Form1.ListBox1.Items.Add("Up") ;
1: Form1.ListBox1.Items.Add("Down") ;
end;
end;
← →
MTsv DN (2005-11-22 08:57) [2]Привет...
Отслеживание WM_VSCROLL - это понятно... Но Вы не правильно меня поняли, видимо не стоило упоминать о ListBox"e.
Мне нужно разделить работу, при нажатии на кнопку мыши... В первом случае: обычный клик (WM_LBUTTONDOWN + WM_LBUTTONUP) -> Процедура 1, во втором случае: нажатие + удержание (WM_LBUTTONDOWN + ???????) -> Процедура 2...
С Уважением MTsv DN
← →
Leonid Troyanovsky © (2005-11-22 12:39) [3]
> MTsv DN (22.11.05 08:57) [2]
> Мне нужно разделить работу, при нажатии на кнопку мыши..
> . В первом случае: обычный клик (WM_LBUTTONDOWN + WM_LBUTTONUP)
> -> Процедура 1, во втором случае: нажатие + удержание (WM_LBUTTONDOWN + ???????) -> Процедура 2...
Эти два случая практически не отличаются.
И в первом и в другом между down и up проходит много колов времени.
Но, можно поступить очень просто: в OnMouseDown пускать таймер,
с интервалом, скажем, 100 мсек, а в OnMouseUp его выключать.
Тогда, в OnTimer и пускать Процедуру 2 (отключив предварительно таймер).
Состояние нажатого можно сохранять в поле типа TShiftState,
а если нужны и клавиши - с помощью GetKeyboardState.
--
Regards, LVT.
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2006.02.05;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.01 c