IApplicationDesignModeSettings2 接口 (shobjidl_core.h)

使开发工具应用程序能够动态控制系统和用户状态(如本机显示分辨率、设备比例系数和应用程序视图布局),报告给 Windows 应用商店应用,以便测试在设计模式下运行的 Windows 应用商店应用,使其适用于各种外形规格,而无需实际硬件。 还允许测试正常用户控制状态的更改,以在各种方案中测试 Windows 应用商店应用。

继承

IApplicationDesignModeSettings2 接口继承自 IApplicationDesignModeSettingsIApplicationDesignModeSettings2 也包含以下类型的成员:

方法

IApplicationDesignModeSettings2 接口包含以下方法。

 
IApplicationDesignModeSettings2::GetApplicationSizeBounds

此方法检索应用程序支持的大小边界。
IApplicationDesignModeSettings2::GetApplicationViewOrientation

获取应用程序设计模式窗口的方向。
IApplicationDesignModeSettings2::SetAdjacentDisplayEdges

设置应用程序窗口是否与模拟显示器的边缘相邻。
IApplicationDesignModeSettings2::SetApplicationViewMinWidth

设置应用程序设计模式窗口所需的最小宽度。
IApplicationDesignModeSettings2::SetApplicationViewOrientation

设置用于设计模式窗口的窗口方向。
IApplicationDesignModeSettings2::SetIsOnLockScreen

此方法确定应用程序在设计模式下是否可以在Windows 8锁屏界面上显示信息。
IApplicationDesignModeSettings2::SetNativeDisplayOrientation

设置设计模式窗口的模拟显示方向。

注解

此接口是通过共同创建CLSID_ApplicationDesignModeSettings获取的。 它是原始 IApplicationDesignModeSettings 接口的 扩展。

示例

在此示例中,Visual Studio 在设计模式下启动一个应用程序,该应用程序覆盖了大小为 1366x768 的显示器上的最小宽度。 然后,它将启用一个滑块控件,该控件允许用户动态更改应用程序宽度。 为此,它需要使用新的 SetApplicationViewMinWidthGetApplicationSizeBounds API 来计算此类应用程序允许的最小和最大大小。

有关 IInitializeWithWindow::Initialize 的详细信息,请参阅 显示依赖于 CoreWindow 的 WinRT UI 对象

ComPtr<IApplicationDesignModeSettings> spDesignModeSettings;

// CoCreate the design mode settings object
HRESULT hr = CoCreateInstance(CLSID_ApplicationDesignModeSettings, nullptr, CLSCTX_INPROC, IID_PPV_ARGS(&spDesignModeSettings));
if (SUCCEEDED(hr))
{
    ComPtr<IInitializeWithWindow> spInitializeWithWindow;
    hr = pDesignModeSettings->QueryInterface(IID_PPV_ARGS(&spInitializeWithWindow);
    if (SUCCEEDED(hr))
    {
        // Before we set any design mode state, we must first initialize the
        // design mode settings object with a proxy core window. Since apps
        // running in design mode don't have an actual core window, we must
        // supply an HWND that can be used as a proxy.
        hr = spInitializeWithWindow->Initialize(hwndProxyCoreWindow);
    }

    if (SUCCEEDED(hr))
    {
        // Set the native display size to 1366x768
        SIZE sizeDisplay = {1366, 768};
        hr = spDesignModeSettings->SetNativeDisplaySize(sizeDisplay);
        if (SUCCEEDED(hr))
        {
            // Set the native display orientation to landscape
            hr = spDesignModeSettings->SetNativeDisplayOrientation(NDO_LANDSCAPE);
            if (SUCCEEDED(hr))
            {
                // Set the scale factor to 100%
                DEVICE_SCALE_FACTOR scaleFactor = SCALE_100_PERCENT;
                hr = spDesignModeSettings->SetScaleFactor(scaleFactor);
            }
        }
    }

    if (SUCCEEDED(hr))
    {

        // Override the app’s minimum width
        hr = spDesignModeSettings->SetApplicationViewMinWidth(AVMW_320);
        if (SUCCEEDED(hr))
        {
            SIZE sizeAppMin;
            SIZE sizeAppMax;
            hr = spDesignModeSettings->GetApplicationSizeBounds(&sizeAppMin, &sizeAppMax);
            if (SUCCEEDED(hr))
            {
                // Push the min and max size to the slider control,
                // to update the values that it maps to
                …

                // Start by sizing the app to its min bound, so compute the                         
                // resulting view orientation
                APPLICATION_VIEW_ORIENTATION viewOrientation;
                hr = spDesignModeSettings->GetApplicationViewOrientation(sizeAppMin, &viewOrientation);
                if (SUCCEEDED(hr))
                {
                    // Set the app view orientation
                    hr = spDesignModeSettings->SetApplicationViewOrientation(viewOrientation);
                }
            }
        }
    }

    if (SUCCEEDED(hr))
    {
        // Set the adjacent display edges so that the app is touching just the left edge of the screen
        hr = spDesignModeSettings->SetAdjacentDisplayEdges(ADE_LEFT);
    }
}

要求

要求
最低受支持的客户端 Windows 8.1 [仅限桌面应用]
最低受支持的服务器 Windows Server 2012 R2 [仅限桌面应用]
目标平台 Windows
标头 shobjidl_core.h (包括 Shobjidl.h)

另请参阅

IApplicationDesignModeSettings