日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

基于Windows 7中的 Ribbon開發(fā)技術(shù)應(yīng)用( 二 )


為了避免上述所有的問題,把這些接口包裝到類庫 。一個RIBBON類,并且你使用如下:
RIBBON(HWND hh = 0);~RIBBON();bool Initialize();
Ribbon初始化成功返回Ture
bool LoadMarkup(HINSTANCE hInst,LPCWSTR resourceName);
Ribbon初始化成功返回Turebool LoadMarkup(HINSTANCE hInst,LPCWSTR resourceName);
從資源里加載ribbon,如果現(xiàn)有的ribbon被加載,則釋放它 。void DestroyMarkup();銷毀加載的ribbon 。int& DesiredHeight();
返回理想高度ribbonvoid SetHeight(int);允許設(shè)置ribbon高度
調(diào)用類庫向父窗口發(fā)送一個預定義的MESSAGE_RIBBON (const int MESSAGE_RIBBON = RegisterWindowMessage(L"{E733E4DA-904C-486b-B5FB-6201773D69DE}");),與 WPARAM設(shè)置為RIBBON *類,和LPARAM設(shè)置為RIBBON_MESSAGE結(jié)構(gòu):
struct RIBBON_MESSAGE{ IUIFramework * u_f; 
// Pointer to the IUIFramework of the ribbon UINT32 cmd; 
// Command IDUINT32 reason; 
 // Reason code (When View is changed) UI_COMMANDTYPE type; 
 // Type of the command UI_VIEWTYPE vtype; 
 // Verb Type of the view change (When View is changed) UI_VIEWVERB vverb 
; // Verb of the view change (When View is changed) UI_EXECUTIONVERB verb; 
 // Verb of the command const PROPERTYKEY* key; 
// Contains the new value const PROPVARIANT* cv; 
 // Contains the current value IUISimplePropertySet* pset; 
// Contains an interface which you can set/query values void* view; 
// Contains an IUnknown* of the view interface 
// (when view is changed) which you 
// can use to query for an IUIRibbon. bool update; 
// true if view is changed. };
因此,如果您只是想重定向消息到WM_COMMAND ,您檢查update ==false,erb== UI_EXECUTIONVERB_EXECUTE ,和type == UI_COMMANDTYPE_ACTION。
LRESULT CALLBACK Main_DP(HWND hh,UINT mm,WPARAM ww,LPARAM ll) 
 { 
 if (mm == MESSAGE_RIBBON) 
 { 
RIBBON_MESSAGE* rm = (RIBBON_MESSAGE*)ll; 
if (!rm) 
if (rm->update == false && rm->verb == UI_EXECUTIONVERB_EXECUTE 
 && rm->type == UI_COMMANDTYPE_ACTION) 
SendMessage(hh,WM_COMMAND,rm->cmd,0); 
} 
 }
分析Ribbon的XML數(shù)據(jù)格式由于ribbon本質(zhì)上是一個代表性的一個XML地圖,在這里您將實際花費大部分的時間來制定一個好的和工作ribbon. 。
ribbon 基本要素:一套命令,每個人可以有一個ID,一個符號,一個標簽,一個提示,和一套圖像 。您定義這些命令為"按鈕"和其他因素,如標簽或一組標簽 。一套要素,包括一個"應(yīng)用程序的菜單" ,一個"快速訪問工具欄"和"ribbon" ,其中載有一些標簽 。每個標簽可以有一些組,每個組都可以有一些預定義的控制 。
這些組都必須標明具體的"大小"和布局;所以舉例來說,如果你想說, 6組內(nèi)的按鈕,你只有三種預定義的方式,安排他們 。這里是一組實例命令:
 LabelTitle="New " Symbol="cmdNew" 
 Comment="New" 
 Id="22001" 
 TooltipTitle="Tooltip Title" 
 TooltipDescription="Tooltip Text"> 
  
1-32a.bmp 
 
 
 
1-32a.bmp 
 
 
 
 

推薦閱讀