我正在尝试使用Win32 API(没有MFC或VC ++)在C ++中创建工具栏。我能够创建一个看起来像这样的工具栏,没有背景,只有基本的窗口颜色。
我希望它看起来像下面的图片有光泽的条和灰色渐变
当我收到一个未定义的错误时,我尝试使用TBSTYLE_FLAT
,我声明它等于0x0800
但仍然没有任何区别。我需要添加更多属性吗?我将在下面粘贴我的代码。
HWND hTbar = CreateWindowEx(0, TOOLBARCLASSNAME, NULL, WS_CHILD | WS_VISIBLE, 0, 0, 0, 0, hwnd, (HMENU)12, GetModuleHandle(NULL), NULL);
SendMessage(hTbar, TB_BUTTONSTRUCTSIZE, (WPARAM)sizeof(TBBUTTON), 0);
TBBUTTON tb[5];
TBADDBITMAP tBmp;
tBmp.hInst = HINST_COMMCTRL;
tBmp.nID = IDB_STD_SMALL_COLOR;
SendMessage(hTbar, TB_ADDBITMAP, 0, (LPARAM)&tBmp);
ZeroMemory(tb, sizeof(tb));
tb[0].iBitmap = STD_FILEOPEN;
tb[0].fsState = TBSTATE_ENABLED;
tb[0].fsStyle = TBSTYLE_BUTTON;
SendMessage(hTbar, TB_ADDBUTTONS, sizeof(tb)/sizeof(TBBUTTON), (LPARAM)&tb);
我使用的是Windows 7和Win32 C ++ API。感谢。
答案 0 :(得分:0)
背景可能来自父窗口。要免费获得视觉样式背景渐变效果,请将工具栏放在rebar内并使用TBSTYLE_FLAT和TBSTYLE_TRANSPARENT工具栏样式。