0

(たぶん)簡単な質問があります。「灰色のパッチ」を残さずにデータをウィンドウに合わせたいので、ユーザーが「最大化」をクリックした後にプログラムウィンドウのサイズを変更したいと思います(私はイタリア出身なので、意味があります) mわからない)。問題は、単純なメッセージを表示しようとしても表示されないことです。これは、私のクラス(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:wxListCtrlから継承できません;

不要なwxListCtrlにwxScrolledWindowを使用しているようです(wxListCtrlはすでにコンテンツのスクロールを管理しています)。その場合は、コードからwxScolledWindowを削除してください。

そのwxListCtrl(EBCList)がフレーム(EBCFrame)内の唯一のクライアントウィンドウである場合、wxWidgetsは自動的にサイズを変更します。

その間にさらにウィジェットをフレームに追加した場合は、サイザークラスを調べてレイアウトを構成することをお勧めします(例:wxBoxSizer)。

于 2012-10-22T01:34:41.373 に答える