共用方式為


IUIFramework::GetView 方法 (uiribbon.h)

擷取介面指標的位址,此介面代表 Windows 功能區架構檢視,例如 IUIRibbonIUIContextualUI

語法

HRESULT GetView(
  [in]  UINT32 viewId,
  [in]  REFIID riid,
  [out] void   **ppv
);

參數

[in] viewId

類型: UINT32

檢視的標識碼。 功能區ContextPopup的 Command.Id 值為 0。

[in] riid

類型: REFIID

IUIRibbonIUIContextualUI 的介面識別符。

[out] ppv

類型: void**

當這個方法傳回時,會包含 IUIRibbonIUIContextualUI 物件的指標位址。

傳回值

類型: HRESULT

如果成功,則傳回S_OK;否則,下列清單中的錯誤值。

描述
E_INVALIDARG riid 不是有效的介面標識碼。
E_FAIL 作業失敗。

備註

功能區架構 UI 功能是由檢視區分,這些檢視基本上是內建的核心架構,例如 功能區和ContextPopup

IUIFramework::GetView 可讓主應用程式視需要建立暫時介面指標並呼叫方法,而不是維護介面的指標。

注意 主應用程式必須在暫存介面指標上呼叫 IUnknown::Release ,以避免記憶體流失。
 
例如,每當功能區的大小變更時,主機應用程式會呼叫 GetHeight 來適當地調整主機工作區的大小。

範例

下列範例示範如何使用 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

另請參閱

IUIFramework

Windows 功能區架構範例