2014-12-27 3 views
-1

У меня есть настройка нескольких мониторов. Правый - основной монитор, слева - вторичный монитор. Я хочу определить, в каком мониторе вызывается мое окно, чтобы я мог создавать и показывать свое окно на этом мониторе.Получить ручку HMONITOR текущего активного монитора

У меня возникла проблема с получением ручки текущего выбранного монитора.

Я попытался использовать API MonitorFromWindow(), но он всегда дает основной монитор. У меня всегда отображается окно на основном мониторе, независимо от того, из какого монитора он вызывается.

Пожалуйста, помогите мне решить эту проблему.

+0

Там я SNO «текущий» монитор, все мониторы являются текущими и активными. 'MonitorFromWindow' позволяет вам обрабатывать заданное окно на данный момент, и если вы хотите другой монитор, вам нужно перечислить мониторы и выбрать тот, который вам нужен. –

+0

Как будет перечислять помощь монитора в моем случае использования. Мне нужно знать, из какого монитора вызывается мое окно. – user2338040

+0

См. [Этот вопрос] (http://stackoverflow.com/questions/26541484/enumdisplaymonitors-callback) на перечислении мониторов ('EnumDisplayMonitors' API). –

ответ

0

Попробуйте MonitorFromPoint, используя координаты курсора из GetCursorPos

+0

Что делать, если пользователь просто перемещает курсор мыши на другой монитор – user2338040

+0

Ну, ваш вопрос странный. Я не совсем понимаю, что вы делаете. Если ваше окно находится на основном мониторе, то, конечно, MonitorfromWindow даст вам основной монитор. Возможно, уточните свой вопрос для получения более качественных ответов. – tenfour

+0

Мое приложение работает в обоих мониторах. Например, если пользователь выбирает меню (Файл-> Справка) или нажимает клавишу F1 на дополнительном мониторе, мне нужно создать и показать окно справки на дополнительном мониторе. – user2338040

Смежные вопросы