gpt4 book ai didi

c++ - 无法使用 wxWidgets 为工具栏获取合适的 Vista/7 主题

转载 作者:太空宇宙 更新时间:2023-11-04 12:26:26 24 4
gpt4 key购买 nike

我无法使用 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com