2015-06-26 3 views
2

Итак, я пытаюсь запустить полноэкранное окно на дополнительном дисплее. У меня установлен компьютер для расширения дисплеев. Я пробовал каждое решение для переполнения стека, которое я нашел, и все они запускают окно на экране ноутбука, но оно имеет ширину и высоту монитора, поэтому он частично распространяется на монитор. Поэтому проблема (я думаю) заключается в том, что она не получает правильную координату (x, y) верхнего левого угла второго монитора. Вот код:Окно создания Win32 C++ во втором мониторе

DEVMODE laptop; 
EnumDisplaySettings(NULL, 0, &laptop); 
int endOfLaptopW=laptop.dmPelsWidth; 
const POINT pt={endOfLaptopW+1, 360};//create point on second monitor 
HMONITOR hmon=MonitorFromPoint(pt, NULL); 
MONITORINFO mi = { sizeof(mi) }; 
if (!GetMonitorInfo(hmon, &mi)) return NULL; 

CreateWindow(TEXT("static"), TEXT("FULLSCREEN"), WS_POPUP|WS_VISIBLE, mi.rcMonitor.left, mi.rcMonitor.top, mi.rcMonitor.right - mi.rcMonitor.left, mi.rcMonitor.bottom - mi.rcMonitor.top, bkgrdPrintWin, NULL, g_hinst, 0);  
+1

Пожалуйста, подтвердите свой код. –

ответ

2

EnumDisplaySettings не функция, которую вы хотите здесь. Это перечисляет графические режимы, а графический режим 0, вероятно, 320x200 или что-то еще маленькое. Это почти наверняка не будет текущим разрешением вашего дисплея.

Попробуйте использовать функцию EnumDisplayMonitors.

+0

Спасибо, что сделал трюк! – kasandell

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