Compartir a través de


Método IUIApplication::OnViewChanged (uiribbon.h)

Se llama cuando cambia el estado de una vista .

Sintaxis

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

Parámetros

[in] viewId

Tipo: UINT32

Identificador de la vista. Solo un valor de 0 es válido.

[in] typeID

Tipo: UI_VIEWTYPE

La UI_VIEWTYPE hospedada por la aplicación.

[in] view

Tipo: IUnknown*

Puntero a la interfaz View.

[in] verb

Tipo: UI_VIEWVERB

La UI_VIEWVERB (o acción) realizada por la Vista.

[in] uReasonCode

Tipo: INT32

Sin definir.

Valor devuelto

Tipo: HRESULT

Si este método se realiza correctamente, devuelve S_OK. De lo contrario, devuelve un código de error de HRESULT.

Comentarios

El marco envía esta notificación de devolución de llamada a la aplicación host en cada cambio de estado de vista.

Importante Esta devolución de llamada solo se produce para la vista de cinta con un viewId de 0.
 
IUIApplication::OnViewChanged es útil para inicializar las propiedades de la cinta de opciones cuando se inicia la aplicación host, modificando las propiedades de la cinta en función de las acciones del usuario, como cambiar el tamaño de la ventana de la aplicación y consultar las propiedades de la cinta cuando se cierra la aplicación.

Ejemplos

En el ejemplo siguiente se muestra una implementación básica del método 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;
}

Requisitos

   
Cliente mínimo compatible Windows 7 [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2008 R2 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado uiribbon.h
Archivo DLL Mshtml.dll

Consulte también

IUIApplication

Ejemplos de Windows Ribbon Framework