点击或拖拽改变大小

ToolBar.AppendItem 方法

X#
将一个新的工具栏按钮项添加到工具栏的末尾,该按钮项来自可用按钮的列表。

命名空间:  XSharp.VO.SDK
程序集:  XSharp.VOGUIClasses (在 XSharp.VOGUIClasses.dll 中) 版本:2.22 GA
语法
 VIRTUAL METHOD AppendItem(
	nButtonID,
	nMenuItemID,
	oBmp,
	nPosition,
	cTitle,
	nImgCount,
	bState,
	bStyle,
	symTB
) AS USUAL CLIPPER
查看代码

参数

nButtonID (Optional)
类型:__Usual
新的工具栏按钮项的ID。要在按钮组之间添加间隔,可以附加一个标记为 IDT_SEPARATOR 的项目。要查看可用的标准按钮项,可以在菜单编辑器中打开列表。对于自定义工具栏按钮,可以附加一个标记为 IDT_CUSTOMBITMAP 的项目。(例如,对于第一个按钮,<nButtonID> 是 IDT_CUSTOMBITMAP + 1;第二个按钮是 IDT_CUSTOMBITMAP + 2,依此类推。)
nMenuItemID (Optional)
类型:__Usual
新的工具栏按钮项对应的菜单项的ID。
oBmp (Optional)
类型:__Usual
包含一个或多个自定义位图的位图对象。位图中的每个按钮都必须是一个16色,20 x 16像素的位图。位图中的第一个按钮必须在像素位置1和20处绘制,第二个按钮在位置21和40处绘制,第三个按钮在位置41和60处绘制,依此类推。(实际上,这是一个按钮的带。)可以将自定义按钮放在单独的位图资源文件中,并为每个按钮创建一个 Bitmap 对象。如果使用这种方法,<nPosition>设置为1。建议在一个位图文件中使用一个按钮的带,因为这样只使用一个句柄。后一种方法将为每个创建的对象使用一个句柄。
nPosition (Optional)
类型:__Usual
自定义工具栏按钮在位图中的位置。如果在<oBmp>中使用的是按钮的带,那么第一个按钮是1,第二个按钮是2,依此类推。如果使用单独的位图,或者如果未指定,<nPosition>为1。 下图说明了一个位图中包含的按钮的带,显示了每个按钮的像素位置和<nPosition>:
cTitle (Optional)
类型:__Usual
如果在工具栏上显示按钮时使用的工具栏按钮的标题,可以指定标题。可以是 TB_TEXTANDICON 或 TB_TEXTONLY 样式。如果未指定,使用默认值 NULL_STRING。
nImgCount (Optional)
类型:__Usual
在<oBmp>中传递的图像中的按钮数量。默认为1。
bState (Optional)
类型:__Usual
按钮的初始状态,启用或禁用。如果启用,用户可以选择按钮。如果禁用,按钮会变暗(灰色)并且不能被选择;直到应用程序启用它,它仍然不可用。默认为启用(TBSTATE_ENABLED)。
bStyle (Optional)
类型:__Usual
工具栏项的可选样式标志。默认情况下,样式会根据其他参数自动推导。但是,通过传递 Windows API 常量,可以强制执行特定的样式。默认为 TBSTYLE_BUTTON。
symTB (Optional)
类型:__Usual
表示要使用的工具栏的符号名称。默认为主工具栏。

返回值

类型:__Usual
如果成功则返回 TRUE;否则返回 FALSE。
备注
提示 提示:
请参阅 Microsoft Win32 软件开发工具包文档,了解有关特定 Windows API 常量的详细信息。
当按钮被点击时触发的事件,以及在状态栏中显示的描述,都是基于关联菜单的属性。因此,工具栏通过其关联菜单间接控制应用程序的操作。 通过调用 ToolBar:AppendItem() 方法为每个标准工具栏按钮指定工具栏可能看起来有点麻烦。定义工具栏的推荐方法是使用菜单编辑器,它会自动生成布局工具栏的代码。 请注意,用户可以使用配置对话框修改工具栏上的按钮项集。程序不需要关心哪些按钮存在,因为事件的发生就像是菜单选择一样。 为了减少“视觉噪音”(不希望的闪烁和闪烁),ToolBar:AppendItem() 方法不会立即反映使用 ToolBar:AppendItem() 方法添加的按钮。相反,必须调用 ToolBar:Update() 方法,使所有新的按钮一次性显示出来。ToolBar:Show() 方法会自动更新显示。对于一次性定义并附加到窗口的工具栏,不需要显式调用 ToolBar:Update(),这个方法只适用于在运行时更改其按钮配置的工具栏。
示例
以下示例向工具栏添加了两个自定义位图:
X#
 1DEFINE BUTTON_ONE     := 1
 2DEFINE BUTTON_TWO     := 2
 3DEFINE FIRST_BUTTON   := IDT_CUSTOMBITMAP + BUTTON_ONE
 4DEFINE SECOND_BUTTON  := IDT_CUSTOMBITMAP + BUTTON_TWO
 5DEFINE MENUOPTIONONE  := 3000
 6DEFINE MENUOPTIONTWO  := 3001
 7
 8LOCAL oBitmap AS Bitmap
 9// IDB_BUTTONS是包含2个按钮的位图的资源定义
10oBitmap := Bitmap{IDT_BUTTONS}
11// 第一个 AppendItem() 方法使用位图对象中的第一个按钮位图,而第二个 AppendItem() 方法使用第二个位图。
12SELF:ToolBar:AppendItem(FIRST_BUTTON,MENUOPTIONONE,  oBitmap,1,"Button One")
13SELF:ToolBar:AppendItem(SECOND_BUTTON, MENUOPTIONTWO,oBitmap,2,"Button Two")
参见