Share via


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 API と 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 を含む)

こちらもご覧ください

IApplicationDesignModeSettings