IUIApplication::OnViewChanged-Methode (uiribbon.h)

Wird aufgerufen, wenn sich der Status einer Ansicht ändert.

Syntax

HRESULT OnViewChanged(
  [in] UINT32      viewId,
  [in] UI_VIEWTYPE typeID,
  [in] IUnknown    *view,
  [in] UI_VIEWVERB verb,
  [in] INT32       uReasonCode
);

Parameter

[in] viewId

Typ: UINT32

Die ID für die Ansicht. Nur der Wert 0 ist gültig.

[in] typeID

Typ: UI_VIEWTYPE

Die von der Anwendung gehostete UI_VIEWTYPE.

[in] view

Typ: IUnknown*

Ein Zeiger auf die Ansichtsschnittstelle.

[in] verb

Typ: UI_VIEWVERB

Die UI_VIEWVERB (oder Aktion), die von der Ansicht ausgeführt wird.

[in] uReasonCode

Typ: INT32

Nicht definiert.

Rückgabewert

Typ: HRESULT

Wenn diese Methode erfolgreich ist, wird S_OK zurückgegeben. Andernfalls wird ein Fehlercode HRESULT zurückgegeben.

Hinweise

Diese Rückrufbenachrichtigung wird vom Framework bei jeder Änderung des Ansichtszustands an die Hostanwendung gesendet.

Wichtig Dieser Rückruf erfolgt nur für die Menübandansicht mit einer viewId von 0.
 
IUIApplication::OnViewChanged ist nützlich, um Menübandeigenschaften beim Starten der Hostanwendung zu initialisieren, Menübandeigenschaften basierend auf Benutzeraktionen zu ändern, z. B. Ändern der Größe des Anwendungsfensters, und Abfragen von Menübandeigenschaften beim Schließen der Anwendung.

Beispiele

Im folgenden Beispiel wird eine grundlegende Implementierung der IUIApplication::OnViewChanged-Methode veranschaulicht .

//
//  FUNCTION: OnViewChanged(UINT, UI_VIEWTYPE, IUnknown*, UI_VIEWVERB, INT)
//
//  PURPOSE: Called when the state of a View (Ribbon is a view) changes - like created/destroyed/resized.
//
//  PARAMETERS:    
//                viewId - The View identifier. 
//                typeID - The View type. 
//                pView - Pointer to the View interface. 
//                verb - The action performed by the View. 
//                uReasonCode - Not defined. 
//
//  COMMENTS:
//
//    For this sample, return the same command handler for all commands
//    specified in the .xml file.
//    
//
STDMETHODIMP CApplication::OnViewChanged(
    UINT viewId,
    UI_VIEWTYPE typeId,
    IUnknown* pView,
    UI_VIEWVERB verb,
    INT uReasonCode)
{
    HRESULT hr = E_NOTIMPL;
    
    // Checks to see if the view that was changed was a Ribbon view.
    if (UI_VIEWTYPE_RIBBON == typeId)
    {
        switch (verb)
        {            
            // The view was newly created.
            case UI_VIEWVERB_CREATE:
                _cwprintf(L"IUIApplication::OnViewChanged called with verb=CREATE\r\n");

                if (NULL == g_pRibbon)
                {
                    // Retrieve and store the IUIRibbon
                    hr = pView->QueryInterface(&g_pRibbon);
                }
                break;

            // The view was resized.  
            // In the case of the Ribbon view, the application should call 
            // GetHeight() to determine the height of the Ribbon.
            case UI_VIEWVERB_SIZE:
                _cwprintf(L"IUIApplication::OnViewChanged called with verb=SIZE\r\n");
                // Call to the framework to determine the height of the Ribbon.
                if (NULL != g_pRibbon)
                {
                    UINT uRibbonHeight;
                    hr = g_pRibbon->GetHeight(&uRibbonHeight);
                }
                if (!SUCCEEDED(hr))
                {
                    //_cwprintf(L"IUIRibbon::GetHeight() failed with hr=0x%X\r\n", hr);
                }
                break;
                
            // The view was destroyed.
            case UI_VIEWVERB_DESTROY:
                //_cwprintf(L"IUIApplication::OnViewChanged called with verb=DESTROY\r\n");
                g_pRibbon = NULL;
                hr = S_OK;
                break;
        }
    }
    return hr;
}

Anforderungen

   
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

IUIApplication

Windows-Menübandframeworkbeispiele