IUIFramework::GetView 메서드(uiribbon.h)
IUIRibbon 또는 IUIContextualUI와 같은 Windows 리본 프레임워크 뷰를 나타내는 인터페이스에 대한 포인터의 주소를 검색합니다.
구문
HRESULT GetView(
[in] UINT32 viewId,
[in] REFIID riid,
[out] void **ppv
);
매개 변수
[in] viewId
형식: UINT32
보기의 ID입니다. Ribbon 또는 ContextPopup의 Command.Id 값 0입니다.
[in] riid
형식: REFIID
IUIRibbon 또는 IUIContextualUI에 대한 인터페이스 ID입니다.
[out] ppv
형식: void**
이 메서드가 반환되면 IUIRibbon 또는 IUIContextualUI 개체에 대한 포인터의 주소가 포함됩니다.
반환 값
형식: HRESULT
성공하면 S_OK 반환합니다. 그렇지 않으면 다음 목록의 오류 값입니다.
값 | 설명 |
---|---|
E_INVALIDARG | riid 는 유효한 인터페이스 ID가 아닙니다. |
E_FAIL | 작업이 실패했습니다. |
설명
리본 프레임워크 UI 기능은 기본적으로 리본 및 ContextPopup과 같은 기본 제공 핵심 프레임워크인 뷰로 구분됩니다.
IUIFramework::GetView는 애플리케이션 수명 동안 인터페이스에 대한 포인터를 유지 관리하는 대신 호스트 애플리케이션이 임시 인터페이스 포인터를 만들고 필요에 따라 메서드를 호출할 수 있도록 합니다.
예제
다음 예제에서는 IUIFramework::GetView 메서드를 사용하여 리본 뷰 개체를 검색하고, GetHeight 메서드를 호출하여 리본의 높이를 검색하고, 리본의 높이에 따라 컨텍스트 팝업 컨트롤의 표시 위치를 계산하는 방법을 보여 줍니다.
void GetDisplayLocation(POINT &pt, HWND hWnd)
{
if (pt.x == -1 && pt.y == -1)
{
HRESULT hr = E_FAIL;
// Display the menu in the upper-left corner of the client area, below the ribbon.
IUIRibbon* pRibbon;
hr = g_pFramework->GetView(0, IID_PPV_ARGS(&pRibbon));
if (SUCCEEDED(hr))
{
UINT32 uRibbonHeight = 0;
hr = pRibbon->GetHeight(&uRibbonHeight);
if (SUCCEEDED(hr))
{
pt.x = 0;
pt.y = uRibbonHeight;
// Convert client coordinates of a specified point to screen coordinates.
ClientToScreen(hWnd, &pt);
}
pRibbon->Release();
}
if (FAILED(hr))
{
// Default to just the upper-right corner of the entire screen.
pt.x = 0;
pt.y = 0;
}
}
}
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 7 [데스크톱 앱만 해당] |
지원되는 최소 서버 | Windows Server 2008 R2 [데스크톱 앱만 해당] |
대상 플랫폼 | Windows |
헤더 | uiribbon.h |
DLL | Mshtml.dll |