小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

細品RibbonX(43):禁用和重利用功能區(qū)中的命令

 yuxinrong 2009-12-04
與以前的版本不一樣,Office 2007允許全局地禁用和重利用命令。在過去,禁用命令必需禁用UI中執(zhí)行該命令的控件的每一單個的實例,這顯然是一項巨大的工作。
禁用命令
禁用Office 2007中的命令是非常簡單的,最重要的是知道打算禁用的命令的控件名以及這些命令在哪類控件之下。從commands集合中完全禁用某命令,而不是從Ribbon對象和該對象的父容器。試圖從父容器里禁用某命令將產生一條錯誤消息。
例如,假設希望禁用“加粗”命令,可以使用下列代碼:
    <commands>
<command idMso="Bold"
                 enabled="false"/>
</commands>

就這么簡單!關鍵是確保正確使用了你希望禁用的命令的idMso。
禁用與應用程序選項和退出應用程序相關的命令
雖然應用程序選項和退出應用程序控件屬于officeMenu元素,然而不能從officeMenu容器里禁用這兩個控件。相反,必須使用command元素,如下所示:

    <commands>
<command idMso="FileExit"
                 enabled="false"/>
<command idMso="ApplicationOptionsDialog"
                 enabled="false"/>
</commands>

當要禁用許多控件時,一個更好的選擇是共享回調,這樣不需要指定每個命令的enabled屬性。這種情況下,代碼如下所示:

    <commands>
<command idMso="FileExit"
                 getEnabled="rxshared_getEnabled"/>
<command idMso="ApplicationOptionsDialog"
                 getEnabled="rxshared_getEnabled"/>
<command idMso="Bold"
                 getEnabled="rxshared_getEnabled"/>
</commands>

下面來處理回調,禁用控件,代碼如下:

Sub rxshared_getEnabled(control As IRibbonControl, ByRef returnedVal)
returnedVal = False
End Sub

重利用與通用控件相關的命令
重利用命令與禁用命令所采取的方式相同,也是在commands集合中進行處理。
同樣,重利用命令成功的關鍵在于知道希望重利用的命令所在的控件。此外,雖然某命令是不可見的,但是如果通過快捷鍵調用的話,仍然具有所設計的功能。這也帶來了一些問題,例如事件的重復觸發(fā)。
下面,我們來重利用應用程序選項按鈕:

        <command idMso="ApplicationOptionsDialog"
                 onAction="rxApplicationOptionsDialog_repurpose"/>

回調代碼如下:

Sub rxApplicationOptionsDialog_repurpose(control As IRibbonControl, ByRef cancelDefault)
MsgBox "對不起,Excel選項目前已經被禁用.", vbCritical
End Sub

與前面的示例一樣,如果多個控件共享相同的回調簽名,那么可以使用同一過程。
影響鍵盤快捷鍵和鍵擊鍵
有時,可能希望覆蓋掉內置快捷鍵和鍵擊鍵。重載鍵擊鍵是非常簡單的,只需引用該控件,然后給它賦新的鍵擊鍵,如下面的XML代碼所示:

    <tab idMso="TabInsert" keytip="$">

通過將“$”賦值給“插入”選項卡作為鍵擊鍵,從而將其鍵擊鍵從“I”修改為“$”。如下圖所示,盡管使用了特殊字符$,然而仍然顯示自定義的結果。
DisableRepurposeCommand1
提示:鍵擊鍵通過“鍵,然后鍵”的方式訪問,即按下并釋放第一個鍵,然后按第二個鍵。而快捷鍵則通過“鍵加鍵”的方式訪問,即同時按下所有的鍵。
下面,我們演示重載內置快捷鍵,例如Ctrl+c。這里介紹使用OnKey方法來重載內置快捷鍵。OnKey方法用于運行指定的過程,與SendKeys方法類似,因此可以使用與之相同的鍵代碼。但是,OnKey方法稍微有點不同,使用下表所列的參數(shù)。

名稱 必需/可選 數(shù)據(jù)類型 描述
Key 必需 字符串 代表鍵或按鍵組合的字符串
Procedure 可選 Variant 代表要運行的過程名稱的字符串。如果值為””(空文本),當按下鍵或鍵組合時沒有任何操作,這種形式的OnKey修改了鍵擊的正常結果。如果忽略參數(shù),那么鍵或鍵組合將恢復到正常行為(即OnKey方法清除的任何鍵或鍵組合以前被賦予的功能)


OnKey方法的通用語法如下:

    Application.OnKey Key,ProcedureName

正如上表如所,參數(shù)Key指定計劃捕獲的鍵或鍵組合,而參數(shù)ProcedureName指定當按下鍵或鍵組合時必須執(zhí)行的過程名。假設希望捕獲打印快捷鍵(Ctrl+p),可以使用下列代碼:

Sub print_override()
Application.OnKey "^p", "myPrintMsg"
End Sub

為了恢復快捷鍵的正常功能,必須忽略OnKey方法參數(shù)中的過程名,如下代碼所示:

Sub print_override()
Application.OnKey "^p"
End Sub

該快捷鍵命名將恢復其默認的功能。

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多