C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
Помогите оформить событие мыши
Оля
Отправлено: 19.12.2003, 00:29


Не зарегистрирован







wink.gif Подскажите как оформить следующие событие: при нажатии на кнопку отмечаются начальные координаты, далее при движении мыши, координаты меняются и при отпускании кнопки отмечаются конечные координаты
seg_r
Отправлено: 19.12.2003, 01:21


Дежурный стрелочник

Группа: Участник
Сообщений: 74



Ну если на форме, то :

//---------------------------------------------------------------------------

void __fastcall TForm1::FormMouseDown(TObject *Sender, TMouseButton Button,
TShiftState Shift, int X, int Y)
{
Form1->Label1->Caption=IntToStr(X)+" — "+IntToStr(Y);
}
//---------------------------------------------------------------------------

void __fastcall TForm1::FormMouseUp(TObject *Sender, TMouseButton Button,
TShiftState Shift, int X, int Y)
{
Form1->Label2->Caption=IntToStr(X)+" — "+IntToStr(Y);
}
//---------------------------------------------------------------------------


А если нет, то

через API :

function GetKeyState(VirtKey: Integer): Integer;

там код клавиши (мыши)

VK_LBUTTON = &H1
Левая кнопка мыши
VK_RBUTTON = &H2
Правая кнопка мыши
VK_MBUTTON = &H4
Средняя кнопка мыши


Клавиша нажата, если стаpший бит pавен 1, и клавиша пеpеключается, если младший бит pавен 1.


и в Билдере:

Mouse->CursorPos.x
Mouse->CursorPos.y
Georg
Отправлено: 19.12.2003, 16:14


Дежурный стрелочник

Группа: Участник
Сообщений: 34



С мышой не все так просто посмотри https://rxlib.ru/forums/index.php?ac...38467b16e0c85c9
butch
Отправлено: 20.12.2003, 03:34


Не зарегистрирован







у меня получилось так:

int nowXX,nowYY; // здесь храняться текущие координаты
int beginXX,beginYY; // здесь координаты начала
void __fastcall TForm1::Button1MouseMove(TObject *Sender,
TShiftState Shift, int X, int Y) // при передвижении мыши над кнопкой записываем ее координаты
{
nowXX=X;
nowYY=Y;
}
//---------------------------------------------------------------------------
// если нажали на кнопку, то пишем координаты, при которых была нажата кнопка
void __fastcall TForm1::Button1MouseDown(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{
beginXX=X;
beginYY=Y;
}
//---------------------------------------------------------------------------
// ну и когда отпускаем кнопку, то выводим все координаты.
void __fastcall TForm1::Button1MouseUp(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{
ShowMessage("begin "+IntToStr(beginXX)+":"+IntToStr(beginYY)+"\nend "+IntToStr(X)+":"+IntToStr(Y));
}

Вернуться в Вопросы программирования в C++Builder