|
|
|
| Народ, подскажите, как написать функцию, которая выполняется при нажатии на правую кнопку мышки? | |
|
|
|
|
|
|
|
для: Alexandor1984
(20.02.2007 в 15:52)
| | Следует обработать событие нажатия правой кнопки мыши? Вы в какой среде работаете: C++ Builder, VC++ .NET, чистый Windows API? | |
|
|
|
|
|
|
|
для: cheops
(20.02.2007 в 16:31)
| | Ой, сорри.
VC++ .NET | |
|
|
|
|
|
|
|
для: Alexandor1984
(20.02.2007 в 16:54)
| | А на что нажимаем? На кнопку, другой элемент управления или просто на область формы (окна)? | |
|
|
|
|
|
|
|
для: cheops
(20.02.2007 в 17:19)
| | Хочется просто сделать слушатель мыши, который не зависит от места нахождения курсора и активной программы. | |
|
|
|
|
|
|
|
для: Alexandor1984
(20.02.2007 в 17:26)
| | Каждое событие привязано к окну Windows, т.е. чтобы обработать нажатие левой кнопки мыши, вам необходимо обработать событие WM_RBUTTONUP, выбрав в окне Properties класс диалогового окна и выбрав окно Messages в этом случае вы сможете добавить обработчик нажатия правой кнопки мыши в автоматическом режиме, среда разработки сама пропишет обработчик в карте сообщений BEGIN_MESSAGE_MAP. Если вы хотите вообще перехватить системное событие нажатие правой кноки мыши, т.е. например, чтобы не было возможности открыть контекстное меню и выполнялся заданный вами код - нужно вешать резидента, который будет перехватывать хуки (тут я вряд ли помогу, с перехватом API-вызовов не работал). | |
|
|
|
|
|
|
|
для: cheops
(20.02.2007 в 18:13)
| | Спасибо огромное, это мне сильно сберегло время. Надеюсь в API документации быстро найдутся нужные доки, похоже мне только туда дорога... | |
|
|
|
|
|
|
|
для: cheops
(20.02.2007 в 18:13)
| | Мне просто нужно подсчитать количество правых кликов в винде, а уж есть котекстные меню или их нет, мне без разницы. | |
|
|
|
|
|
|
|
для: Alexandor1984
(20.02.2007 в 18:30)
| | Все решилось банально. Достачно было подключить "Windows.h" и использовать GetKeyState.
Вот он, слушатель мыши в одну строку:
********************************
rightmousebtn.h
********************************
#pragma once
#ifndef __AFXWIN_H__
#error "include 'stdafx.h' before including this file for PCH"
#endif
#include "resource.h"
#include "Winuser.h"
__declspec(dllexport) int AddValues();
********************************
rightmousebtn.cpp
********************************
#include "stdafx.h"
#include "rightmousebtn.h"
#include "Windows.h"
int AddValues()
{
int right_mouse_btn_flag = GetKeyState(MK_RBUTTON);
return right_mouse_btn_flag;
} | |
|
|
|