这几天需要美化软件的界面,修改菜单栏和工具栏的背景色后,出现了一个问题:工具栏和菜单栏之间有一条灰白色的分割线,与周围的色彩极不协调,于是想方设法去掉那条分割线。
本来打算重绘工具栏,但后来找到了一个更简单的方法:去掉工具栏的边框。
代码如下:
if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE
| CBRS_ALIGN_TOP | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
!m_wndToolBar.LoadToolBar(IDR_MainToolBar))
{
TRACE0("未能创建工具栏\n");
return false;
}
其实很简单,只需修改工具栏的风格即可。在风格定义中,CBRS_TOP 的定义包括了向上对齐和设置边框2个用处(感觉有点坑,光从命名上是看不出来的),于是,我将CBRS_TOP替换为CBRS_ALIGN_TOP, 如此一来,边框就去掉了,工具栏和菜单栏之间的“分割线”也就没有了。
#define CBRS_TOP (CBRS_ALIGN_TOP|CBRS_BORDER_BOTTOM)