C++ 处理c&x2B+;wxWidgets EVT_最大化宏

C++ 处理c&x2B+;wxWidgets EVT_最大化宏,c++,wxwidgets,C++,Wxwidgets,我有一个(也许)简单的问题。我想在用户点击“最大化”后调整我的程序窗口大小,因为我想让数据适合窗口,而不留下“灰色补丁”(希望它有意义,lol,因为我来自意大利,我不确定它是否有意义)。问题是,如果我试图显示一条简单的消息,它就不会显示。这是我认为您需要查看的我的类的代码(cpp文件) 这是头文件 class EBCFrame : public wxFrame { public: // Constructor EBCFrame(const wxString

我有一个(也许)简单的问题。我想在用户点击“最大化”后调整我的程序窗口大小,因为我想让数据适合窗口,而不留下“灰色补丁”(希望它有意义,lol,因为我来自意大利,我不确定它是否有意义)。问题是,如果我试图显示一条简单的消息,它就不会显示。这是我认为您需要查看的我的类的代码(cpp文件)

这是头文件

class EBCFrame : public wxFrame
{
    public:
        // Constructor
        EBCFrame(const wxString& title);
        // Event handlers
        .....
        void OnMaximize(wxMaximizeEvent& event);

    private:
        // This class handles events
        DECLARE_EVENT_TABLE()

        wxScrolledWindow* _window;
        ....
};

我道歉,如果这还不够,你需要完整的代码;在这种情况下,我将在再次阅读此问题时提供。谢谢你的支持

从您前面问题的代码判断:

您似乎将wxScrolledWindow用于不需要的wxListCtrl(wxListCtrl已管理其内容的滚动)。如果是这种情况,请从代码中删除wxScolledWindow

如果wxListCtrl(EBCList)是框架(EBCFrame)中唯一的客户端窗口,那么wxWidgets将自动调整其大小


如果您同时在框架中添加了更多的小部件,您可能需要查看sizer类以组成布局(例如wxBoxSizer)。

最大化事件是否触发?文档说它只为wxMSW、wxGTK、wxOSX/Cocoa和wxOS2端口()生成。有任何事件(如wxEVT_大小)对您有用吗?谢谢,问题是它根本不会触发。我尝试使用EVT_大小的宏进行测试,但如果我只是更改事件触发器,而不对onmax代码进行任何更改,程序会在启动时崩溃。它工作了,你肯定是我的天使(因为你总是回答我lol),但我能问你为什么它不能与以前的版本一起工作吗?(感谢关于WXScrolledwindowo的提示,我想我需要它)因为我想知道为什么,有一天它可能会有用。在我在这里发布之前,我看过wxBoxSizer,但据我所知,我相信它只对对话框有用。我错了吗?谢谢你抽出时间!我不太清楚你在问什么。。。当您的框架只有一个子窗口(以框架作为父窗口创建)时,框架将自动调整其大小以适合其客户区域。如果您有多个子窗口,框架不知道如何按照您想要的方式对齐它们,在这种情况下,您必须使用wx*Sizer或wxSplitterWindow。因此,如果我有一个“nephew”窗口(在我的例子中:EBCFrame->WXScrolledwindowo->EBCList),“自动”拟合不起作用,我需要使用wxSizers。。正确的?这是我正在研究的方向,但我没有意识到如何将列表与wxSize匹配。。。现在我想我明白了。。。非常感谢。这里有一个关于wxBoxSizer的小教程,这里有一个展示了不同类型的Sizer。后者还演示了如何在复杂布局中嵌套大小调整器。
class EBCFrame : public wxFrame
{
    public:
        // Constructor
        EBCFrame(const wxString& title);
        // Event handlers
        .....
        void OnMaximize(wxMaximizeEvent& event);

    private:
        // This class handles events
        DECLARE_EVENT_TABLE()

        wxScrolledWindow* _window;
        ....
};