我无法使用wxWidgets(c ++)在Vista / 7中获得适当的工具栏主题。由于某些未知原因,我现在得到了灰色条(正如您所见here)。我想让它看起来this。我已经链接到comctl32.lib(=> 5.82)并且UXTHEME已启用。这是代码:
#include <wx/wx.h>
class TestAppFrame: public wxFrame
{
public:
TestAppFrame(wxWindow *parent,
wxWindowID id = wxID_ANY,
const wxString &title = wxT("Test"),
const wxPoint &position = wxDefaultPosition,
const wxSize &size = wxSize(373, 206),
long style = wxDEFAULT_FRAME_STYLE | wxTAB_TRAVERSAL)
: wxFrame(parent, id, title, position, size, style)
{
wxToolBar *tb = CreateToolBar(wxNO_BORDER | wxHORIZONTAL | wxTB_FLAT);
tb->Realize();
SetToolBar(tb);
}
};
class TestApp: public wxApp
{
public:
bool OnInit()
{
if (!wxApp::OnInit())
return false;
wxInitAllImageHandlers();
TestAppFrame *frame = new TestAppFrame(NULL);
frame->Show(true);
return true;
}
};
IMPLEMENT_APP(TestApp)
我在这里做错了什么?
最好的问候,
nhaa123
答案 0 :(得分:1)
类似渐变钢筋的背景实际上不适合Vista / 7下的工具栏,如果你使用工具栏查看任何本机应用程序而不是钢筋或带(现在有点难以找到),你可以看到它们具有相同的灰色背景,所以我们认为这是正确的事情。
您应该能够在EVT_ERASE_BACKGROUND
事件中自己绘制工具栏的背景,但默认情况下,wx尝试表现符合平台标准,在这种情况下,这意味着不使用任何渐变。
答案 1 :(得分:0)
您想使用wxAUIToolbar。它具有您描述的外观并与wxToolbar兼容,因此您可以在任何使用wxToolbar的地方使用它。
我会指出你的文档,除了没有。 (我自己有一个未解决的问题)