Автор | Сообщение |
|
| |
Пост N: 617
Зарегистрирован: 17.06.10
|
|
Отправлено: 05.12.21 14:02. Заголовок: Текущий монитор
На компе >1 монитора. Как можно узнать номер монитора на котором находится окно моего приложения ?
|
|
|
Ответов - 6
[только новые]
|
|
|
| постоянный участник
|
Пост N: 1732
Зарегистрирован: 09.10.06
|
|
Отправлено: 06.12.21 19:53. Заголовок: WinApi функция Monit..
WinApi функция MonitorFromWindow В исходниках MiniGUI есть файл c_monitor.c, можно портировать, также есть пример использования функций для работы с несколькими мониторами - MiniGUI\SAMPLES\BASIC\Multi_Monitor
|
|
|
|
| |
Пост N: 618
Зарегистрирован: 17.06.10
|
|
Отправлено: 06.12.21 21:30. Заголовок: Спасибо. Я тут пораз..
Спасибо. Я тут поразбирался с VirtualScreen, примерно понял как мониторы распределяются по общему ректанглу. Теперь надо научиться считывать DC с этих мониторов. Полагаю, что надо делать монитор активным и DetDesctopWindow() Хотя..
|
|
|
|
| постоянный участник
|
Пост N: 1734
Зарегистрирован: 09.10.06
|
|
Отправлено: 06.12.21 21:58. Заголовок: HDC GetWindowDC( ..
HDC GetWindowDC( [in] HWND hWnd ); Parameters [in] hWnd A handle to the window with a device context that is to be retrieved. If this value is NULL, GetWindowDC retrieves the device context for the entire screen. If this parameter is NULL, GetWindowDC retrieves the device context for the primary display monitor. To get the device context for other display monitors, use the EnumDisplayMonitors and CreateDC functions.
|
|
|
|
| |
Пост N: 619
Зарегистрирован: 17.06.10
|
|
Отправлено: 06.12.21 22:12. Заголовок: Правильно ли я понял..
Правильно ли я понял, что EnumDisplayMonitors перечисляет хендлы мониторов и посредством CreateDC() можно считать DC каждого ?
|
|
|
|
| постоянный участник
|
Пост N: 1736
Зарегистрирован: 09.10.06
|
|
Отправлено: 06.12.21 22:25. Заголовок: Так утверждает MS :..
Так утверждает MS
|
|
|
|
| постоянный участник
|
Пост N: 1737
Зарегистрирован: 09.10.06
|
|
Отправлено: 06.12.21 22:30. Заголовок: И почитайте документ..
И почитайте документацию CreateDC там есть такой интересный момент If there are multiple monitors on the system, calling CreateDC(TEXT("DISPLAY"),NULL,NULL,NULL) will create a DC covering all the monitors. Если такая ситуация Вас устроит, то и EnumDisplayMonitors вроде бы и получается, что не нужен.
|
|
|
|