Итак, у меня есть утилита захвата экрана (она снимает весь экран и сохраняет ее в png-файлах), которую я написал, и она использует SM_CXVIRTUALSCREEN
и SM_CYVIRTUALSCREEN
для определения ширины и высоты рабочего стола. 1003 *
Затем я получаю DC рабочего стола, копирую биты и сохраняю их как png.
BitBlt(
backDC, 0, 0,
backBufferCX, backBufferCX,
desktopDC, X_SRC, 0, SRCCOPY );
Здесь X_SRC
обычно равно 0, ЕСЛИ БЕЗ СТОЛБА НЕ РАСПРОСТРАНЕНО "ВЛЕВО". В этом случае он должен быть -1280px, например, если левый монитор измеряет 1280px.
Как определить, является ли начальная точка рабочего стола отрицательной (если пользователь расширил свой рабочий стол влево?)