win32sdk学习-简单的创建一个自己的工具栏
来源:互联网 发布:概率算法中a和c区别 编辑:程序博客网 时间:2024/05/22 02:19
window程序中常使用的一个组件,就是工具栏了,基本上工具栏都是和菜单的选择是对应的。
在win32 api中有一个专门创建工具栏的函数(尽管msdn上说不建议使用)
CreateToolbarEx。
自定义的工具栏,除了使用默认系统提供的图像之外,就是使用自己的图片资源了,不知道是不是win32程序兼容的关系,工具栏的图片资源要是bmp并且是8位256色的,网上有其他很多使用真彩图片的办法。这里使用默认的函数创建,图片就需要是8位256色。
hWndToolBar=CreateToolbarEx(hwnd,//窗口句柄WS_VISIBLE|WS_CHILD|TBSTYLE_FLAT|TBSTYLE_TOOLTIPS,//样式IDR_TOOL,22,//IDR_TOOL工具栏资源ID,第二个参数是图片资源上的按钮数量 hInst,//模块实例句柄IDR_TOOLBAR1,//自定义图片的资源IDtbButtons,//按钮结构数组地址22,//显示的按钮数量
0,0,16,16,//图片大小sizeof(TBBUTTON));//按钮结构size
返回的是一个工具栏句柄。
如果不是使用自定义图片资源,使用系统预定义位图的话,用模块句柄HINST_COMMCTRL(上面的模块实例句柄)和位图句柄IDB_STD_SMALL _COLOR(位图句柄就是上面的图片资源ID)来指定使用Comctl32.dll中的预定义位图。使用自定义图片资源的时候,图片大小是必须要指定的,如:0,0,16,16.表示16X16的图片。系统图片可以直接写0,0,0,0。
TBBUTTON结构
typedef struct _TBBUTTON { int iBitmap; //按钮在图片资源中的索引,以0开始 int idCommand; //按钮对应命令ID,一般和菜单命令对应 BYTE fsState; //按钮类型 BYTE fsStyle; //按钮样式 DWORD dwData; //自定义数据 int iString; //按钮字符串索引} TBBUTTON,
按钮的类型有:
TBSTATE_CHECKED——按钮的类型是复选框按钮,并且按钮初始化为选中状态(即保持按下状态)。
TBSTATE_ENABLED——按钮被允许,如果不指定这个标志,按钮将显示为灰色,并且不会接收用户的动作。
TBSTATE_HIDDEN——隐藏状态,按钮不显示在工具栏上。
TBSTATE_INDETERMINATE——按钮处于灰化状态,但可以接收用户的动作。
TBSTATE_PRESSED——按钮处于按下状态。
TBSTATE_WRAP——在包含TBSTYLE_WRAPABLE风格的多行工具栏中,从此按钮开始换行。
按钮的样式:
TBSTYLE_BUTTON——标准按钮。
TBSTYLE_CHECK——复选框按钮(按钮状态在按下和凸起之间切换)。
TBSTYLE_GROUP——指定复选框按钮的分组边界。
TBSTYLE_CHECKGROUP——TBSTYLE_CHECK风格和TBSTYLE_GROUP风格的组合。
TBSTYLE_SEP——按钮之间的分隔线。
可以使用一个数组来表示多个按钮。
TBBUTTON tbButtons[]={
{BNEW, IDM_NEW, TBSTATE_ENABLED, TBSTYLE_BUTTON},
.....
}
- win32sdk学习-简单的创建一个自己的工具栏
- win32sdk学习 richedit实现的一个简单记事本
- 创建一个自己的工具栏 CreateToolbarEx
- win32sdk学习-创建一个状态栏
- 创建一个简单的工具栏控件
- win32sdk学习-创建一个对话框窗口
- 一个基于Win32SDK写的超简单画图板
- MFC创建自己的工具栏(SDI)
- Win32SDK编辑框控件的简单操作
- 关于win32sdk的timer
- Excel VBA创建自己的工具栏和菜单
- 工具栏的创建
- 创建自定义的工具栏
- 工具栏的创建
- 工具栏的创建
- 创建实用的工具栏
- BPEL学习:创建一个简单的流程
- 第十二章 使用工具栏创建简单的多视图应用程序
- 黑马程序员之SQL 学习笔记:数据库的内连接和外连接
- 在oracle中通过connect by prior来实现递归查询!
- ICMP简介
- 有容乃大 DNA硬盘:1克DNA可存储700TB数据
- 黑马程序员之SQL 学习笔记:SQL笔记
- win32sdk学习-简单的创建一个自己的工具栏
- cocos2d-html5学习笔记(一)
- 二战中最无耻的十个国家:苏联第一 日本第二
- Android WebView with https loadUrl shows blank/empty page
- python print 重定向+追加到文件
- linux命令
- 黑马程序员之C# 学习笔记:关于string与stringbuilder的区别
- LINQ IN LIKE
- 317. No pleasure without pain. 没有苦就没有乐