IApplicationDesignModeSettings2 接口 (shobjidl_core.h)
使开发工具应用程序能够动态控制系统和用户状态(如本机显示分辨率、设备比例系数和应用程序视图布局),报告给 Windows 应用商店应用,以便测试在设计模式下运行的 Windows 应用商店应用,使其适用于各种外形规格,而无需实际硬件。 还允许测试正常用户控制状态的更改,以在各种方案中测试 Windows 应用商店应用。
继承
IApplicationDesignModeSettings2 接口继承自 IApplicationDesignModeSettings。 IApplicationDesignModeSettings2 也包含以下类型的成员:
方法
IApplicationDesignModeSettings2 接口包含以下方法。
IApplicationDesignModeSettings2::GetApplicationSizeBounds 此方法检索应用程序支持的大小边界。 |
IApplicationDesignModeSettings2::GetApplicationViewOrientation 获取应用程序设计模式窗口的方向。 |
IApplicationDesignModeSettings2::SetAdjacentDisplayEdges 设置应用程序窗口是否与模拟显示器的边缘相邻。 |
IApplicationDesignModeSettings2::SetApplicationViewMinWidth 设置应用程序设计模式窗口所需的最小宽度。 |
IApplicationDesignModeSettings2::SetApplicationViewOrientation 设置用于设计模式窗口的窗口方向。 |
IApplicationDesignModeSettings2::SetIsOnLockScreen 此方法确定应用程序在设计模式下是否可以在Windows 8锁屏界面上显示信息。 |
IApplicationDesignModeSettings2::SetNativeDisplayOrientation 设置设计模式窗口的模拟显示方向。 |
注解
此接口是通过共同创建CLSID_ApplicationDesignModeSettings获取的。 它是原始 IApplicationDesignModeSettings 接口的 扩展。
示例
在此示例中,Visual Studio 在设计模式下启动一个应用程序,该应用程序覆盖了大小为 1366x768 的显示器上的最小宽度。 然后,它将启用一个滑块控件,该控件允许用户动态更改应用程序宽度。 为此,它需要使用新的 SetApplicationViewMinWidth 和 GetApplicationSizeBounds 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) |