如何将显示器外的单独虚拟桌面的屏幕尺寸拉伸?

时间:2017-10-12 06:15:46

标签: c++ windows winapi desktop

我的虚拟桌面很少。我需要将其中一个的整个屏幕拉伸到不适合显示器的大小。我尝试了以下方法:

    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)的结果。尝试了不同的标志/没有标志,指定较低的分辨率 - 没有任何帮助,功能从未奏效。

请告诉我为什么我的代码不起作用,或者说我还能如何解决这个问题呢?

0 个答案:

没有答案