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

Определение положения курсора на Image

11.10.2016, 15:36. Показов 2995. Ответов 6

Студворк — интернет-сервис помощи студентам
Приветствую! Реализовывал на Delphi такую замечательную штуку:
Delphi
1
2
GetCursorPos(pt);
pt := image1.ScreenToClient(pt);
Будьте добры, подскажите как осуществить подобное на С++, есть такое, но оно работает не должным образом:
C++
1
2
GetCursorPos(&pt);
Image1->ScreenToClient(Form1->Handle,&pt);
Спасибо большое!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.10.2016, 15:36
Ответы с готовыми решениями:

Функция от положения курсора
Есть форма. В ней окошко для вывода числа. В программе есть функция float E(int x, int y){ return какие-то операции с x и y. } ...

Как прокрутить RichEdit до положения курсора
Есть текст (до 200 кб) в RichEdit, перевожу курсор в нужную мне позицию с помощью SelStart, но не получается сделать скролл текста до...

Определение положения точки относительно прямой
В общем, есть прямая и координаты ее начала и конца. И есть точка, координаты которой тоже известны. Как узнать, находится точка выше или...

6
 Аватар для Maluda
1280 / 598 / 116
Регистрация: 18.08.2009
Сообщений: 832
11.10.2016, 15:41
C++
1
2
3
TPoint ACursorPt;
GetCursorPos(&ACursorPt);
ACursorPt = Image1->ScreenToClient(ACursorPt);
0
0 / 0 / 0
Регистрация: 16.04.2016
Сообщений: 6
11.10.2016, 15:48  [ТС]
Спасибо огромное, скопировал в тему немного не тот код, была реализация как у вас, компилятор выдавал ошибку несовместимости типов, проблема оказалось в том, что я переменную обозначил как POINT.
0
 Аватар для BOGG ART
592 / 459 / 147
Регистрация: 09.12.2013
Сообщений: 2,385
Записей в блоге: 2
11.10.2016, 17:11
Не надо смешивать VCL и API.
C++
1
2
3
4
void __fastcall TForm1::Image1Click(TObject * Sender) {
        TPoint P = Image1->ScreenToClient(Mouse->CursorPos);
        ShowMessage(IntToStr(P.x) + " | " + IntToStr(P.y));
}
И на Делфи аналогично.

Добавлено через 2 минуты
C++
1
((TImage*) Sender)->...
0
 Аватар для Maluda
1280 / 598 / 116
Регистрация: 18.08.2009
Сообщений: 832
11.10.2016, 17:42
Цитата Сообщение от BOGG ART Посмотреть сообщение
Не надо смешивать VCL и API
Вот лишь бы что-то ляпнуть

Исходник файла Controls.pas
Delphi
1
2
3
4
5
function TMouse.GetCursorPos: TPoint;
begin
  if not Windows.GetCursorPos(Result) then
    Result := Point(0, 0);
end;
0
 Аватар для BOGG ART
592 / 459 / 147
Регистрация: 09.12.2013
Сообщений: 2,385
Записей в блоге: 2
11.10.2016, 17:53
Реализация метода VCL тут не при чём. При разработке надо считать её чёрным ящиком. Реализация может меняться в зависимости от версии VCL и от целевой платформы.
Используем VCL - не используем API.
0
 Аватар для Maluda
1280 / 598 / 116
Регистрация: 18.08.2009
Сообщений: 832
12.10.2016, 10:05
BOGG ART,
Цитата Сообщение от BOGG ART Посмотреть сообщение
Используем VCL - не используем API.
Во-первых, не API, a Windows API.
Во-вторых, VCL - это библиотека визуальных компонентов, которая работает только под Windows и только используя WinAPI. И конечно она не охватывает (не оборачивает) 100% всех функций WinAPI. Я уверен, что и в твоих приложениях полно не обернутых функций таких как CreateProcess, StretchBlt и т.д.

Пруф из доки:

Visual Component Library (VCL) is an object hierarchy of visual components that are supported on Windows only (in Win32 and Win64 applications). The VCL framework does not use RTL cross-platform messaging solution; instead, it uses the Windows API messaging solution. This means that the VCL does not translate Windows messages into RTL messages for you, and VCL components communicate with each other using the Windows API as well.
For a cross-platform solution you need to migrate from VCL to FireMonkey.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.10.2016, 10:05
Помогаю со студенческими работами здесь

Определение взаимного положения объектов из заданной области
Пожалуйста очень нужна подмога! Суть такова что нужно чтоб задавались координаты области и вводились координаты точки и программа должна...

Установка курсора на Image программно
Есть компонент Image1, в котором отображена картинка. Нужно программно установить курсор мышки в определённое место Image1. Функция...

TMemo определение позиции курсора
Здравствуйте столкнулся с такой проблемой мне требуется определить позицию в Memo на которой установлен курсор, а затем копировать...

Определение количества пикселов красного цвета на Image
Как определить количество пикселов красного цвета на Image? Как получить цвет каждого пиксела в цикле for и проверить его на соответствие...

Как реализовать изменения угла Image в зависимости от положения курсора мыши
Как реализовать изменения угла Image так, чтобы угол изменялся в зависимости от положения курсора мыши? Я пробовал этот код, но...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
1С: Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит значение перечислений. / / Событие "НачалоВыбора" реквизита на форме. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru