Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/25: Рейтинг темы: голосов - 25, средняя оценка - 4.64
6 / 6 / 1
Регистрация: 22.12.2011
Сообщений: 134

Найти текущие координаты курсора не на PictureBox, а на его Image

28.04.2012, 03:33. Показов 5051. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
вообще задача несколько иная
мне нужно найти
текущие координаты курсора не на самом picturebox
а на его Image как известно он может быть в разы меньше бокса
или же наоборот больше
понятно что координаты берутся из события OnMouseMove у бокса
но вот как вытащить именно те координаты которые мне нужны
не понятно :<
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
28.04.2012, 03:33
Ответы с готовыми решениями:

Текущие координаты курсора
Здравствуйте, хочу написать программу которая бы определяла текущие координаты курсора и выводила их на экран, подскажите какие операторы...

Как получить текущие координаты курсора?
Как получить текущие координаты курсора? Относительно правого верхнего угла окна (центра координат 0;0)?

Как получить текущие координаты курсора?
Как получить текущие координаты курсора? (не в окне программы, а на всё мониторе)

11
 Аватар для nio
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
28.04.2012, 09:44
Цитата Сообщение от Shaman163 Посмотреть сообщение
как вытащить именно те координаты которые мне нужны
Обычный пересчет масштаба:
C#
1
k=picturebox.Width/picturebox.Image.Width; x=k*picturebox.X;
для высоты то же самое
0
6 / 6 / 1
Регистрация: 22.12.2011
Сообщений: 134
28.04.2012, 12:35  [ТС]
хмм получается тоже самое число если я всё правильно понял
вместо picturebox.X подставляем координату X курсора на picturebox
и программа со мной вроде бы согласна
0
 Аватар для nio
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
28.04.2012, 12:46
Shaman163, значит у тебя масштаб отображения 1:1
0
6 / 6 / 1
Регистрация: 22.12.2011
Сообщений: 134
28.04.2012, 13:23  [ТС]
вот пример в пеинте набрасал
Того что мне нужно
по вашей формуле получается координата X=17,5
но этого не может быть ведь на рисунке показано что точка стоит ещё до 0 координат :<
Миниатюры
Найти текущие координаты курсора не на PictureBox, а на его Image  
0
 Аватар для nio
6050 / 3460 / 336
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
28.04.2012, 13:54
Shaman163, естественно, я показал только пример. та формула годится только для случая, когда изображение подогнано под размер picturebox. Для твоего стиля отображения нужно придумать другую формулу или другой подход в отображении.
0
6 / 6 / 1
Регистрация: 22.12.2011
Сообщений: 134
28.04.2012, 14:00  [ТС]
:<
блин
0
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9005 / 4706 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
28.04.2012, 17:29
Цитата Сообщение от Shaman163 Посмотреть сообщение
блин
Не блин вроде... На два вложенных прямоугольника похоже.
Если координата внутреннего во внешнем X,Y (левый верхний угол от левого верхнего же угла), то координата внешняя:
X+x, Y+y, где x,y - внутренние координаты.
ИМХО: больше похоже на пирожок. С начинкой.
0
6 / 6 / 1
Регистрация: 22.12.2011
Сообщений: 134
29.04.2012, 02:47  [ТС]
да? вот только как узнать координаты Image в Picturebox

Добавлено через 17 минут
Оо нет стоп вроде придумал
кому не трудно проверьте меня
находим координату Image внутри picturebox x1= (pictureBox1.Width - pictureBox1.Image.Width) / 2
затем слегка пересчитываем дабы отрисовка кисти происходила точно под курсором
(x-x1) - penScale / 2
0
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9005 / 4706 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
29.04.2012, 03:58
Цитата Сообщение от Shaman163 Посмотреть сообщение
да? вот только как узнать координаты Image в Picturebox
Тут всё не понятно. Вы же не рассказываете как такой PictureBox такой картинкой заселили.
У меня тут опыт поверхностный. Приходилось в основном так:
pictureBox1->Image=gcnew Bitmap(fullFileNameString);
размер pictureBox1 равен размеру картинки.


Добавлено через 36 минут
Цитата Сообщение от IGPIGP Посмотреть сообщение
размер pictureBox1 равен размеру картинки.
Вернее верхние левые углы - начала координат совпадают.
0
6 / 6 / 1
Регистрация: 22.12.2011
Сообщений: 134
29.04.2012, 18:08  [ТС]
ну у меня стоит локация Image по середине picturebox
в этом то вся проблема
в любом случае огромное спасибо за правильные наводки
код работает и это главное..
0
Комп_Оратор)
Эксперт по математике/физике
 Аватар для IGPIGP
9005 / 4706 / 630
Регистрация: 04.12.2011
Сообщений: 14,003
Записей в блоге: 16
29.04.2012, 18:22
Цитата Сообщение от Shaman163 Посмотреть сообщение
код работает и это главное
Трудно не согласиться. )
Смущает то, что если измерение картинки и бокса не совпадут по чётности, возникнет погрешность в определении начала координат в картинке на 1 пиксель. Хотя и это можно отловить.)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.04.2012, 18:22
Помогаю со студенческими работами здесь

Вывести в блок текущие координаты курсора мышки
Сделать страницу, на которой в DIV-блок будут выводится текущие координаты курсора мышки и код нажатой клавиши на клавиатуре. Очень нужна...

Как получить текущие координаты курсора в графическом режиме?
Нужно написать процедуру или функцию, которая при щелчке мыши определяла бы координаты курсора. Координаты нужны для рисования объектов,...

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

Определить координаты курсора на PictureBox
Есть PictureBox в ввиде мишени,мне надо высчитать куда я попал курсором,например если в центр,то вывести надпись &quot;10 очков&quot;,если...

Получить координаты курсора внутри PictureBox
Добрый день! Помогите разобраться с проблемкой. Есть форма, на ней PictureBox. С помощью метода MouseMove отображаются координаты...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
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. Программа предоставляет более. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru