Condividi tramite


Metodo IUIApplication::OnViewChanged (uiribbon.h)

Chiamato quando cambia lo stato di una visualizzazione .

Sintassi

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

Parametri

[in] viewId

Tipo: UINT32

ID della visualizzazione. È valido solo il valore 0.

[in] typeID

Tipo: UI_VIEWTYPE

Il UI_VIEWTYPE ospitato dall'applicazione.

[in] view

Tipo: IUnknown*

Puntatore all'interfaccia View.

[in] verb

Tipo: UI_VIEWVERB

La UI_VIEWVERB (o azione) eseguita dalla visualizzazione.

[in] uReasonCode

Tipo: INT32

Non definito.

Valore restituito

Tipo: HRESULT

Se questo metodo ha esito positivo, restituisce S_OK. In caso contrario, restituisce un codice di errore HRESULT .

Commenti

Questa notifica di callback viene inviata dal framework all'applicazione host in ogni modifica dello stato di visualizzazione.

Importante Questo callback si verifica solo per la visualizzazione della barra multifunzione con un viewId pari a 0.
 
IUIApplication::OnViewChanged è utile per l'inizializzazione delle proprietà della barra multifunzione all'avvio dell'applicazione host, la modifica delle proprietà della barra multifunzione in base alle azioni utente, ad esempio il ridimensionamento della finestra dell'applicazione e l'esecuzione di query sulle proprietà della barra multifunzione alla chiusura dell'applicazione.

Esempio

Nell'esempio seguente viene illustrata un'implementazione di base del metodo IUIApplication::OnViewChanged .

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

Requisiti

   
Client minimo supportato Windows 7 [solo app desktop]
Server minimo supportato Windows Server 2008 R2 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione uiribbon.h
DLL Mshtml.dll

Vedi anche

IUIApplication

Esempi di Windows Ribbon Framework