共用方式為


顯示功能區

Windows 功能區架構會公開一組屬性,可讓應用程式指定在執行時間顯示功能區 UI 的方式。

簡介

若要將檔空間可用的區域最大化, (或檢視功能區架構應用程式的) ,應用程式可以指定功能區 UI 是可見還是隱藏,而且在可見時,功能區是否處於展開或折迭狀態。

下表所列的 架構屬性索引鍵 是用來明確設定功能區架構應用程式中功能區 UI 的顯示特性。 這些屬性不會影響 內容快顯 控制項的顯示。

顯示狀態 功能區屬性索引鍵
展開或折迭 UI_PKEY_Minimized
可見或隱藏 UI_PKEY_Viewable

 

最小化功能區

功能區架構應用程式可以將 UI_PKEY_Minimized 屬性索引鍵的值設定為 truefalse,以動態方式設定功能區命令列的最小化狀態。

顯示狀態 屬性值
展開 false
Collapsed true

 

當功能區 UI 處於最小化狀態時,功能區索引標籤資料列會保持可見且功能完整。

下列螢幕擷取畫面顯示處於最小化狀態的功能區。

顯示已最小化功能區 UI 的螢幕擷取畫面。

注意

功能區架構會透過功能區操作功能表的 [最小化功能區] 選取,向終端使用者公開這項功能。

 

隱藏功能區

功能區架構應用程式可以將 UI_PKEY_Viewable 屬性索引鍵的值設定為 truefalse,以動態方式設定功能區命令列的可檢視狀態。

顯示狀態 屬性值
可見 false
Hidden true

 

相較于 UI_PKEY_Minimized 屬性, 將UI_PKEY_Viewable 設定為 false ,會使功能區 UI 不可見且完全無法使用給使用者。

下列螢幕擷取畫面顯示處於隱藏狀態的功能區。

顯示隱藏功能區 UI 的螢幕擷取畫面。

範例

下列範例示範如何在執行時間設定功能區 UI 的狀態。

在此情況下, IUICommandHandler::Execute 函式是用來根據 切換按鈕的切換狀態來展開或折迭功能區 UI。

//
//  FUNCTION: Execute()
//
//  PURPOSE: Called by the Ribbon framework when a Command is executed 
//           by the user. 
//           This example demonstrates a handler for a Toggle Button
//           that sets the minimized state of the ribbon UI.
//
//  NOTES: g_pFramework is a global pointer to an IUIFramework object 
//         that is assigned when the Ribbon framework is initialized.
//
//         g_pRibbon is a global pointer to the IUIRibbon object
//         that is assigned when the Ribbon framework is initialized.
//
STDMETHODIMP CCommandHandler::Execute(
    UINT nCmdID,
    UI_EXECUTIONVERB verb,
    __in_opt const PROPERTYKEY* key,
    __in_opt const PROPVARIANT* ppropvarValue,
    __in_opt IUISimplePropertySet* pCommandExecutionProperties)
{
    HRESULT hr = E_FAIL;

    if (verb == UI_EXECUTIONVERB_EXECUTE)
    {
        switch (nCmdID)
        {
            // Minimize ribbon Command handler.
            case IDR_CMD_MINIMIZE:
                if (g_pFramework)
                {
                    IPropertyStore *pPropertyStore = NULL;
                    hr = g_pRibbon->QueryInterface(__uuidof(IPropertyStore), 
                                                   (void**)&pPropertyStore);
                    if (SUCCEEDED(hr))
                    {
                        if (ppropvarValue != NULL)
                        {
                            // Is the ToggleButton state on or off?
                            BOOL fToggled;
                            hr = UIPropertyToBoolean(*key, *ppropvarValue, &fToggled);

                            if (SUCCEEDED(hr))
                            {
                                // Set the ribbon display state based on the toggle state.
                                PROPVARIANT propvar;
                                PropVariantInit(&propvar);
                                UIInitPropertyFromBoolean(UI_PKEY_Minimized, 
                                                          fToggled, 
                                                          &propvar);
                                hr = pPropertyStore->SetValue(UI_PKEY_Minimized, 
                                                              propvar);
                                pPropertyStore->Commit();
                            }
                            pPropertyStore->Release();
                        }
                    }
                }
                break;
        }
    }
    return hr;
}

功能區屬性