我的虚拟桌面很少。我需要将其中一个的整个屏幕拉伸到不适合显示器的大小。我尝试了以下方法:
HWND entire_screen = GetDesktopWindow();
if (!SetWindowPos(entire_screen, 0, 0, 0, 3000, 3000, SWP_NOSENDCHANGING))
{
DWORD errorCode = GetLastError();
return 0;
}
该功能不起作用,没有任何变化,GetLastError()返回0,好像一切都很顺利。
尝试更改虚拟桌面的分辨率:
HWND entire_screen = GetDesktopWindow();
DEVMODE devMode;
if (!EnumDisplaySettings(NULL, ENUM_CURRENT_SETTINGS, &devMode))
{
DWORD dw = GetLastError();
return 0;
}
devMode.dmSize = sizeof(DEVMODE);
devMode.dmPelsWidth = 3000;
devMode.dmPelsHeight = 3000;
devMode.dmFields = DM_PELSHEIGHT | DM_PELSWIDTH;
LONG result = ChangeDisplaySettingsEx(0, &devMode, entire_screen,
CDS_ENABLE_UNSAFE_MODES, 0);
if (result != DISP_CHANGE_SUCCESSFUL)
return 0;
在此尝试中,ChangeDisplaySettingsEx返回代码-5(DISP_CHANGE_BADPARAM)的结果。尝试了不同的标志/没有标志,指定较低的分辨率 - 没有任何帮助,功能从未奏效。
请告诉我为什么我的代码不起作用,或者说我还能如何解决这个问题呢?