我无法使用 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
最佳答案
类似钢筋的渐变背景实际上不适合 Vista/7 下的工具栏,如果您查看任何使用工具栏而不是钢筋或色带(诚然,现在很难找到)的 native 应用程序,您会发现它们具有相同的灰色背景,因此我们认为这是正确的做法。
您应该能够在 EVT_ERASE_BACKGROUND
事件中自行绘制工具栏的背景,但默认情况下 wx 会尝试符合平台标准,在这种情况下,这意味着不使用任何渐变。
关于c++ - 无法使用 wxWidgets 为工具栏获取合适的 Vista/7 主题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2229495/