建立不透明平面风格的工具栏

来源:互联网 发布:淘淘商城项目源码19期 编辑:程序博客网 时间:2024/05/20 11:28

今天学习罗云彬win32汇编教材的工具栏一节,核心代码为:

hWinToolbar = CreateToolbarEx(hWnd,WS_VISIBLE|WS_CHILD|TBSTYLE_FLAT|TBSTYLE_TOOLTIPS|CCS_ADJUSTABLE,ID_TOOLBAR,0,HINST_COMMCTRL,IDB_STD_SMALL_COLOR,stToolbar,NUM_BUTTONS,0,0,0,0,sizeof(TBBUTTON));nStyle = GetWindowLong(hWinToolbar,GWL_STYLE);nStyle &= ~TBSTYLE_TRANSPARENT;SetWindowLong(hWinToolbar,GWL_STYLE,nStyle);
运行之后的效果如图1所示,也就是工具栏被用系统背景色填充了,而我希望的效果应该是图2,即工具栏所在的行全为白色。经星羽指点,解决办法如下:增加如下加行代码:
nStyle = GetWindowLong(hWinToolbar,GWL_STYLE);nStyle &= ~TBSTYLE_TRANSPARENT;    SetWindowLong(hWinToolbar,GWL_STYLE,nStyle);
即可

分析原因:TBSTYLE_FLAT这个风格除了将工具栏的按钮设为平面风格以外,还将工具栏设为透明(即工具栏所在行全为系统背景色)。所以需要将这个透明属性去掉即可。

              图1 平面风格但透明的工具栏

 

       图2 平面风格但不透明的工具栏

原创粉丝点击