Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.11.2014, 15:05   #1
Скрипт
Форумчанин
 
Регистрация: 24.12.2012
Сообщений: 776
По умолчанию API-функция MonitorFromPoint

Здравствуйте.
Скажите, пожалуйста, что означает в функции MonitorFromPoint параметр pt (этот параметр представляет собой структуру POINT)?

Структура POINT содержит две координаты: x и y.
Т.е. функция MonitorFromPoint позволяет получить доступ к экрану, в котором находятся эти x и y. А где физически находятся эти x и y?
В справке написано:
POINT structure that specifies the coordinates of the point of interest in virtual screen coordinates.
Т.е. эти координаты находятся на виртуальном экране. А экран монитора - это какой экран?

Т.е. получается, что есть три экрана у монитора:
  1. экран, который можно потрогать, его мы видим. Этот экран окружён пластиком;
  2. виртуальный экран. Это какой экран? Можете привести пример, чтобы стало понятно, что это такое?
  3. ещё какой-то экран монитора, к которому можно получить доступ с помощью функции MonitorFromPoint. Можете привести пример, чтобы стало понятно, что это такое?

Последний раз редактировалось Скрипт; 19.11.2014 в 15:11.
Скрипт вне форума Ответить с цитированием
Старый 19.11.2014, 17:23   #2
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

По координате пикселя определяет на каком мониторе взят пиксель.
Человек_Борща вне форума Ответить с цитированием
Старый 19.11.2014, 17:25   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Насколько я понимаю тут речь идет о случае, когда несколько мониторов подключены к ПК, и изображение делится между ними. Т.е. допустим на каждом мониторе разрешение по ширине 2400, значит точка с Х=2860 вернет хендл второго физического монитора.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 19.11.2014, 17:34   #4
Скрипт
Форумчанин
 
Регистрация: 24.12.2012
Сообщений: 776
По умолчанию

Получается в Windows заранее уже настроен общий экран для работы с несколькими мониторами. Этот экран и есть "виртуальный экран". И ещё каждый монитор имеет свой экран.

Последний раз редактировалось Скрипт; 19.11.2014 в 17:38.
Скрипт вне форума Ответить с цитированием
Старый 19.11.2014, 17:38   #5
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

координатное пространство одно, общее.
именно это позволяет приложения спокойно рисоваться где угодно.
но если вам надо вы можете знать куда именно принадлежит какая точка.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 19.11.2014, 18:51   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Получается в Windows заранее уже настроен общий экран для работы с несколькими мониторами.
Ну можно и так сказать )
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 19.11.2014, 20:58   #7
Скрипт
Форумчанин
 
Регистрация: 24.12.2012
Сообщений: 776
По умолчанию

Все API-функции, работающие с координатами, возвращают данные относительно виртуального экрана?
Например, функция GetCursorPos возвращает координаты относительно экрана монитора или относительно виртуального экрана?
Скрипт вне форума Ответить с цитированием
Старый 19.11.2014, 21:39   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
GetCursorPos возвращает координаты относительно экрана монитора или относительно виртуального экрана?
У тебя есть два монитора? - проверь.
Эта функция должна давать координаты экрана. А на скольких он мониторах умещается ей по-моему все равно.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 19.11.2014, 21:43   #9
Скрипт
Форумчанин
 
Регистрация: 24.12.2012
Сообщений: 776
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Эта функция должна давать координаты экрана.
Но в том то и вопрос, что экранов два вида: экран монитора и виртуальный экран. Вот для какого экрана функция даёт координаты?

Цитата:
Сообщение от Stilet Посмотреть сообщение
У тебя есть два монитора?
Проверил сейчас на двух мониторах. Сделал так, что функция GetCursorPos вернула x=-865 (с минусом). Значит GetCursorPos работает с виртуальным экраном, а не с экраном монитора. Ведь если бы функция GetCursorPos возвращала координаты экрана монитора, то ведь минуса не могло бы быть?

Последний раз редактировалось Скрипт; 19.11.2014 в 22:07.
Скрипт вне форума Ответить с цитированием
Старый 19.11.2014, 22:32   #10
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

посмотрите мой пост.
а потом еще раз и так до просветления.

все работает с общим координатным пространством.

экраны это только мониторы.

не путайтесь в английских словах screen display monitor
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.

Последний раз редактировалось Пепел Феникса; 19.11.2014 в 22:38.
Пепел Феникса вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
API Функция Horus92 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 4 19.07.2010 13:25
API функция возвращающая имена дисков всистеме AIst Win Api 2 09.08.2008 19:17
API-функция NeiL Win Api 2 02.05.2008 22:08
Градиентная заливка APi функция GradientFillRect в Delphi Roberto Win Api 7 11.04.2008 13:34