灰色背景工具栏C ++

时间:2011-10-07 00:18:54

标签: c++ winapi user-interface styles toolbar

我正在尝试使用Win32 API(没有MFC或VC ++)在C ++中创建工具栏。我能够创建一个看起来像这样的工具栏,没有背景,只有基本的窗口颜色。

enter image description here

我希望它看起来像下面的图片有光泽的条和灰色渐变

enter image description here

当我收到一个未定义的错误时,我尝试使用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。感谢。

1 个答案:

答案 0 :(得分:0)

背景可能来自父窗口。要免费获得视觉样式背景渐变效果,请将工具栏放在rebar内并使用TBSTYLE_FLAT和TBSTYLE_TRANSPARENT工具栏样式。