|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
17.10.2011, 00:34 | #1 |
Пользователь
Регистрация: 15.12.2010
Сообщений: 74
|
Вывод MessageBox после тройного и более нажатия ЛКМ
Собственно, есть программа, которая создает окно и, при помощи обработки событий, по нажатии ЛКМ создает меню. Также она закрывается при нажатии ПКМ. Нужно приделать такую штуку - вывод сообщения в MessageBox после более, чем троекратного нажатия ЛКМ. Не представляю, как это сделать.
Мой код, на всякий случай. PHP код:
|
17.10.2011, 10:00 | #2 |
Форумчанин
Регистрация: 05.10.2011
Сообщений: 368
|
надо завести две переменные в которые, будет заноситься время последнего и предпоследнего клика. при каждом клике сравнивать текущее время и время предпоследнего клика, если оно меньше времени отведённого под тройной клик, значит произошёл тройной клик
у меня нет под руками компилятора, но делать надо примерно вот так Код:
lastckick - время последнего клика prelastckick - время предпоследнего клика
Не стоит будить спящего Бога! (с) Меланхолия Харухи Судзумии
|
17.10.2011, 12:32 | #3 |
Участник клуба
Регистрация: 18.10.2008
Сообщений: 1,409
|
haruhi, вот это загнул...
|
17.10.2011, 16:20 | #4 |
Форумчанин
Регистрация: 23.04.2009
Сообщений: 346
|
По приему сообщения о нажатии левой кнопки ставится сабкласс контрола/окна, запускается таймер на нужное вам время задержки. Проца сабкласса имеет счетчик нажатий левой кнопки, который при двух и более инкрементациях выдает мсгбокс. По истечению таймера сабкласс снимается, счетчик обнуляется.
Хотя, с другой стороны, при таком раскладе первым придет сообщение о двойном нажатии, а значит, ставим в данном обработчике таймер, скажем на 200мс, патчим "на лету" код обработчиков одинарного и двойного нажатия, так, чтобы в них был переход на выдачу мсгбокса, по истечению таймера патч снимается. Ваши извраты?
Нет, ну правда..
Последний раз редактировалось yuran666666; 17.10.2011 в 16:31. |
17.10.2011, 18:19 | #5 |
Пользователь
Регистрация: 15.12.2010
Сообщений: 74
|
Дело в том, что мне нужно не по времени, а просто - подряд нажатия клавиши. То есть, если я нажал один раз ЛКМ, затем ПКМ и опять ЛКМ, то счетчик должен обнулиться. Попробовал приделать этот самый счетчик, и подставить под случай сообщения WM_LBUTTONDOWN, только не бейте ногами:
Код:
|
17.10.2011, 18:46 | #6 |
добрый няша
Старожил
Регистрация: 29.10.2006
Сообщений: 4,804
|
haruhi описала самый простой способ. я делал подобное на какой-то лабораторке когда ещё учился
|
17.10.2011, 18:50 | #7 |
Пользователь
Регистрация: 15.12.2010
Сообщений: 74
|
Опять же, у меня время не должно быть ограничено. Зная своего преподавателя, он 100% к этому придерется.
И потом. prelastclick и lastclick нужно объявлять в WndProc. С ними будет та же история, что и при использовании моего i. Они будут определяться по новой при повторном клике. Последний раз редактировалось RAZOR1703; 17.10.2011 в 19:08. |
17.10.2011, 19:43 | #8 |
Участник клуба
Регистрация: 18.10.2008
Сообщений: 1,409
|
объявляй их как static
|
17.10.2011, 20:49 | #9 |
Пользователь
Регистрация: 15.12.2010
Сообщений: 74
|
Вот я пень. counter, блин, мужик, ты меня спас просто! Спасибо тебе огромное.
|
18.10.2011, 14:32 | #10 |
Форумчанин
Регистрация: 23.04.2009
Сообщений: 346
|
Преподу должно понравиться
Нет, ну правда..
Последний раз редактировалось yuran666666; 18.10.2011 в 15:33. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как сделать функцию MessageBox более умной | assch | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 6 | 06.06.2011 22:50 |
Вывод переменных в messagebox() delphi/pascal | Igor100 | Помощь студентам | 4 | 10.05.2011 19:25 |
Не работает SetFocus после MessageBox | Fastex | C++ Builder | 1 | 03.02.2011 13:01 |
выход после нажатия | joks | Общие вопросы C/C++ | 3 | 16.11.2010 23:56 |
Перехват нажатия ЛКМ [Delphi/Hooks] | anGeee | Win Api | 1 | 07.12.2009 00:58 |