Freigeben über


IUIFramework::GetView-Methode (uiribbon.h)

Ruft die Adresse eines Zeigers auf eine Schnittstelle ab, die eine Windows-Menübandframeworkansicht darstellt, z. B. IUIRibbon oder IUIContextualUI.

Syntax

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

Parameter

[in] viewId

Typ: UINT32

Die ID für die Ansicht. Der Wert 0 für ein Menüband oder die Command.Id eines ContextPopups.

[in] riid

Typ: REFIID

Die Schnittstellen-ID für IUIRibbon oder IUIContextualUI.

[out] ppv

Typ: void**

Wenn diese Methode zurückgibt, enthält die Adresse eines Zeigers auf ein IUIRibbon - oder ein IUIContextualUI-Objekt .

Rückgabewert

Typ: HRESULT

Gibt bei erfolgreicher Ausführung S_OK zurück. andernfalls ein Fehlerwert aus der folgenden Liste.

Wert Beschreibung
E_INVALIDARG riid ist keine gültige Schnittstellen-ID.
E_FAIL Fehler beim Vorgang.

Hinweise

Die Benutzeroberflächenfunktionalität des Menübandframeworks unterscheidet sich durch Ansichten, die im Wesentlichen integrierte Kernframeworks sind, z. B. das Menüband und ContextPopup.

Anstatt einen Zeiger auf eine Schnittstelle während der gesamten Lebensdauer einer Anwendung beizubehalten, ermöglicht IUIFramework::GetView einer Hostanwendung, einen temporären Schnittstellenzeiger zu erstellen und bei Bedarf Methoden aufzurufen.

Hinweis Die Hostanwendung muss IUnknown::Release auf dem temporären Schnittstellenzeiger aufrufen, um einen Speicherverlust zu vermeiden.
 
Beispielsweise ruft eine Hostanwendung bei jeder Änderung der Größe des Menübands GetHeight auf, um die Größe des Hostclientbereichs entsprechend anzupassen.

Beispiele

Im folgenden Beispiel wird veranschaulicht, wie Sie mithilfe der IUIFramework::GetView-Methode ein Menübandansicht-Objekt abrufen, die GetHeight-Methode aufrufen, um die Höhe des Menübands abzurufen, und eine Anzeigeposition für ein Context-Popup-Steuerelement basierend auf der Höhe des Menübands berechnen.

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;
    }
  }
}

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 7 [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 R2 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile uiribbon.h
DLL Mshtml.dll

Weitere Informationen

IUIFramework

Windows-Menübandframeworkbeispiele