因此,如果您只是想重定向消息到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数据格式由于ribbon本质上是一个代表性的一个XML地图,在这里您将实际花费大部分的时间来制定一个好的和工作ribbon.。
ribbon 基本要素:一套命令,每个人可以有一个ID,一个符号,一个标签,一个提示,和一套图像。您定义这些命令为"按钮"和其他因素,如标签或一组标签。一套要素,包括一个"应用程序的菜单" ,一个"快速访问工具栏"和"ribbon" ,其中载有一些标签。每个标签可以有一些组,每个组都可以有一些预定义的控制。
这些组都必须标明具体的"大小"和布局;所以举例来说,如果你想说, 6组内的按钮,你只有三种预定义的方式,安排他们。 这里是一组实例命令:
<Command Name="cmdNew"
LabelTitle="New " Symbol="cmdNew"
Comment="New"
Id="22001"
TooltipTitle="Tooltip Title"
TooltipDescription="Tooltip Text">
<Command.SmallImages>
<Image>1-32a.bmp</Image>
</Command.SmallImages>
<Command.LargeImages>
<Image>1-32a.bmp</Image>
</Command.LargeImages>
</Command>
<Command Name="cmdOpen" LabelTitle="Open " Symbol="cmdOpen" Comment="Open" Id="22002" />
<Command Name="cmdSave" LabelTitle="Save " Symbol="cmdSave" Comment="Save" Id="22003" />
<Command Name="Tab1" LabelTitle="First Tab" Symbol="_44" Id="30001"/>
<Command Name="Tab2" LabelTitle="Second Tab" Id="30002"/>
<Command Name="cx1" LabelTitle="Check Box 1" />
<Command Name="Font1" LabelTitle="Font Selection1" />
<Command Name="cpick1" LabelTitle="Choose Color" />
<Command Name="cmdn1" LabelTitle="Main Menu" />
<Command Name="g1" LabelTitle="Group 1" />
标签: