Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/88: Рейтинг темы: голосов - 88, средняя оценка - 4.89
0 / 0 / 0
Регистрация: 19.07.2010
Сообщений: 22

Как получить координаты курсора от левого верхнего угла текущей формы

28.07.2010, 19:34. Показов 16768. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет! У меня следующий вопрос: как получить координаты курсора от левого верхнего угла текущей формы?!, ведь ф-ция GetCursorPos() возвращает координаты от верхнего левого угла экрана насколько я понимаю? Заранее спс
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.07.2010, 19:34
Ответы с готовыми решениями:

Получить и задать координаты левого верхнего угла формы
1. Я нажимаю Button1 и на экран MessageBox.Show высвечиваются координаты формы. (левый верхний угол.) Как это сделать? 2. Я ввожу в...

Как вычислить координаты левого верхнего угла рисунка, на html странице?
сбж

Как вычислить координаты левого верхнего угла рисунка, на html странице?
sbj

11
50 / 40 / 5
Регистрация: 30.06.2010
Сообщений: 1,191
28.07.2010, 20:01
C++
1
2
3
4
5
6
void __fastcall TForm1::FormMouseMove(TObject *Sender, TShiftState Shift,
      int X, int Y)
{
   Labe1->Caption=X;   //Это положение курсора по горизонтали
   Label2->Caption=Y;  //по вертикали
}
0
Эксперт С++
 Аватар для MikeSoft
3957 / 1812 / 184
Регистрация: 21.11.2009
Сообщений: 2,540
28.07.2010, 20:21
Цитата Сообщение от XLammer Посмотреть сообщение
ведь ф-ция GetCursorPos() возвращает координаты от верхнего левого угла экрана насколько я понимаю?
Правильно понимаете. Но никто не запрещает вам отнять от этих значений положение вашей формы
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
28.07.2010, 20:22
ClientToScreen и ScreenToClient - конвертят координаты внутри окна приложения в глобальные коррдинаты на экране и наоборот
0
50 / 40 / 5
Регистрация: 30.06.2010
Сообщений: 1,191
28.07.2010, 20:46
куда это писать?
0
Мы все БОЛЬШАЯ программа
 Аватар для bond95
52 / 52 / 5
Регистрация: 16.04.2009
Сообщений: 489
28.07.2010, 21:01
Куда вам нужно туда пишите.
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
28.07.2010, 21:21
Цитата Сообщение от ProstoMad Посмотреть сообщение
куда это писать?
Для начала - либо в гугл, либо в help, чтобы почитать описание
0
0 / 0 / 0
Регистрация: 19.07.2010
Сообщений: 22
28.07.2010, 21:48  [ТС]
Цитата Сообщение от Evg Посмотреть сообщение
ClientToScreen и ScreenToClient - конвертят координаты внутри окна приложения в глобальные коррдинаты на экране и наоборот
мм а мона пример) ато я порылся в хелпе всё что смог написать

T
C++
1
2
3
4
5
6
7
8
Point pos;
GetCursorPos(&pos);
//pos=ClientToScreen(pos);
pos=ScreenToClient(Form1->Handle, &pos);
Edit1->Text=IntToStr(pos.x) + " / " + IntToStr(pos.y);
 
BitBtn1->Left=pos.x;
BitBtn1->Top=pos.y;
да и то с ошибкой)))

Добавлено через 15 минут
Цитата Сообщение от MikeSoft Посмотреть сообщение
Правильно понимаете. Но никто не запрещает вам отнять от этих значений положение вашей формы
Вариант конечно интересный), но мне нужно вести отсчёт координат для разных вещей, к примеру чтобы контекстное меню нельзя было вызвать на рабочей области, перемещение обьектов относительно панели и т.д

Кстати не подскажете как реализовать следующее: нажимаем на каком-то обьекте(пусть button ) и пока не отпустим левую кнопку можем перемещать её, а когда отпустили она осталась на текущей позиции. Или ето уже задевается тема о Hookах и отслеживании нажатий клавиш?)
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
28.07.2010, 22:48
Вот описание
http://msdn.microsoft.com/en-u... 32582.aspx
функция возвращает bool. Потому у тебя и ошибка, которую, к слову говоря, неплохо бы и показать.

Вместо
C
1
pos=ScreenToClient(Form1->Handle, &pos);
должно быть
C
1
2
3
4
if (! ScreenToClient(Form1->Handle, &pos))
{
  /* Какая-то лажа, которой быть не должно - смело вываливаемся в ошибку */
}
0
Тутошний я
 Аватар для Grey
2147 / 1202 / 225
Регистрация: 03.11.2009
Сообщений: 4,424
Записей в блоге: 2
29.07.2010, 00:04
Цитата Сообщение от XLammer Посмотреть сообщение
Кстати не подскажете как реализовать следующее: нажимаем на каком-то обьекте(пусть button ) и пока не отпустим левую кнопку можем перемещать её,
В папке перемещение и растягивание image.
Вложения
Тип файла: zip Uimage.zip (722.4 Кб, 198 просмотров)
1
0 / 0 / 0
Регистрация: 19.07.2010
Сообщений: 22
29.07.2010, 16:32  [ТС]
Цитата Сообщение от Grey Посмотреть сообщение
В папке перемещение и растягивание image.
Спс большое) только не очень понял вот этот фрагмент
C++
1
if (Shift.Contains(ssLeft)) {...}
0
Покинул форум
3189 / 1368 / 109
Регистрация: 29.01.2010
Сообщений: 2,887
29.07.2010, 16:38
XLammer, это проверка: зажата ли левая кнопка мыши.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.07.2010, 16:38
Помогаю со студенческими работами здесь

Как в PictureBox начальные координаты с верхнего левого угла перенести на нижний левый?
Помогите пожалуйста, как это реализовать в с++ windows forms (это необходимо для задачи с шариком брошенным под углом к горизонту)

Получение координаты левого верхнего угла окна
Ребята, как получить текущее координаты левого верхнего угла окна, я использую следующее... RECT rect; GetWindowRect(*main_window,...

Координаты X,Y верхнего левого угла выделенной ячейки в DataGridView
Как вычислить?

Создать класс окно, имеющий координаты верхнего левого и нижнего правого угла, цвет фона
Создать класс окно, имеющий координаты верхнего левого и нижнего правого угла, цвет фона (указатель на строку). Определить конструкторы,...

(C) Дан бинарный файл, содержащий прямоугольники(координаты левого верхнего и правого нижнего угла–целые числа типа int)
Дан файл, содержащий прямоугольники (координаты левого верхнего и правого нижнего угла – целые числа типа int). Удалить из файла все...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru