Двойное нажатие правой кнопкой мыши в компонентах C++Builder
От: 4nd  
Дата: 15.11.04 14:11
Оценка:
Здравствуйте.
Подскажите, плиз, как мне поймать двойное нажатие правой кнопки мыши в VCL компонентах C++Bulder'a.
Я пробовал замерять время при нажатии и отпускании кнопки, но это не получилось сделать нормально.

Андрей.
Re: Двойное нажатие правой кнопкой мыши в компонентах C++Bui
От: Flamer Кипр http://users.livejournal.com/_flamer_/
Дата: 15.11.04 17:14
Оценка:
Здравствуйте, 4nd, Вы писали:

4nd>Здравствуйте.

4nd>Подскажите, плиз, как мне поймать двойное нажатие правой кнопки мыши в VCL компонентах C++Bulder'a.
4nd>Я пробовал замерять время при нажатии и отпускании кнопки, но это не получилось сделать нормально.

Смотря как пробовали. Вот, например, в оконной процедуре можно попробовать такое:

void __fastcall TMyControl::WndProc(TMessage& Message)
{
  switch(Message.Msg)
  {
     case WM_RBUTTONDOWN:
       if( GetMessageTime() >= GetDoubleClickTime())
          MessageBox(NULL,"Right double-click!",NULL,MB_OK);
     break;
  }
}


Писал навскидку, токмо ради указания направления копания
Re: WM_RBUTTONDBLCLK
От: Альт Россия http://cryptocode.ru
Дата: 16.11.04 02:02
Оценка:
Здравствуйте, 4nd, Вы писали:

4nd>Здравствуйте.

4nd>Подскажите, плиз, как мне поймать двойное нажатие правой кнопки мыши в VCL компонентах C++Bulder'a.
4nd>Я пробовал замерять время при нажатии и отпускании кнопки, но это не получилось сделать нормально.
4nd>Андрей.

Only windows that have the CS_DBLCLKS style can receive WM_RBUTTONDBLCLK messages, which Windows generates whenever the user presses, releases, and again presses the right mouse button within the system's double-click time limit. Double-clicking the right mouse button actually generates four messages: WM_RBUTTONDOWN, WM_RBUTTONUP, WM_RBUTTONDBLCLK, and WM_RBUTTONUP again.
: 4000654
Re[2]: Двойное нажатие правой кнопкой мыши в компонентах C++
От: 4nd  
Дата: 17.11.04 14:04
Оценка:
Здравствуйте, Flamer, Вы писали:

F>Смотря как пробовали. Вот, например, в оконной процедуре можно попробовать такое:


F>
F>void __fastcall TMyControl::WndProc(TMessage& Message)
F>{
F>  switch(Message.Msg)
F>  {
F>     case WM_RBUTTONDOWN:
F>       if( GetMessageTime() >= GetDoubleClickTime())
F>          MessageBox(NULL,"Right double-click!",NULL,MB_OK);
F>     break;
F>  }
F>}
F>


Да, спасибо, попробую сделать так, тем болле известно, что должно придти cобытие
WM_RBUTTONDBLCLK.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.