다음을 통해 공유


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인 디스플레이에서 최소 너비를 재정의한 디자인 모드에서 애플리케이션을 시작합니다. 그런 다음 사용자가 애플리케이션 너비를 동적으로 변경할 수 있는 슬라이더 컨트롤을 사용하도록 설정합니다. 이렇게 하려면 새 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