0

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

void EBCFrame::OnMaximize(wxMaximizeEvent& event)
{
//    _window->Fit();
    wxMessageBox(_T("maximize test"));
}

// Event table for EBCFrame
BEGIN_EVENT_TABLE(EBCFrame, wxFrame)
    ...
    EVT_MAXIMIZE(EBCFrame::OnMaximize)
END_EVENT_TABLE()

这是头文件

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;
        ....
};

如果这还不够并且您需要完整的代码,我深表歉意;在这种情况下,我会在再次阅读此问题后立即提供。谢谢您的支持!

4

1 回答 1

2

从您之前的问题代码来看:wxWidgets: can't inherit from wxListCtrl ;

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

如果 wxListCtrl (EBCList) 是框架 (EBCFrame) 中唯一的客户端窗口,wxWidgets 会自动调整它的大小。

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

于 2012-10-22T01:34:41.373 回答