0

WXWidgetsを習得しようとして少し問題があります。私は現在ファイルダイアログを操作しようとしていますが、1つのオープニングで問題ありません。しかし、ウィンドウにスタイルを適用しようとすると、問題が発生します。使用するスタイルに関係なく、宣言されていない識別子を取得します。

私のコードは次のとおりです(はい、Hello Worldアプリです。本格的なアプリを実際に作成する前に、学習する必要のあるすべてのことを実験しています)

    #include "wx/wx.h"
    #include "wx/filedlg.h"

    #include "HelloWorldApp.h"

    IMPLEMENT_APP(HelloWorldApp)

    bool HelloWorldApp::OnInit()
    {
        wxFrame *frame = new wxFrame((wxFrame*) NULL, -1, _T("Hello wxWidgets World"));


        wxFileDialog* OpenDialog = new wxFileDialog(frame, _("Choose a file to open"), wxEmptyString, wxEmptyString, 
            _("Image Files (*.jpg, *.png, *.gif, *.bmp)|*.jpg;*.png;*.gif;*.bmp|Sound Files (*.wav, *.mp3)|*.wav;*.mp3"),
wxFD_MULTIPLE);

        frame->CenterOnScreen();
        frame->Show(true);

        OpenDialog->ShowModal();

        SetTopWindow(frame);
        return true;
    }

「wxFD_MULTIPLE」引数がなくても問題なく動作します。私はwxWidgetsのバージョン2.8.12を使用しています。

読んでくれてありがとう。私は誰もが与えることができるどんな助けや指導にも本当に感謝しています。それが本当に明白な何かであるならば、すみません、私は行方不明です。

4

1 に答える 1

0

非常に古いwxWidgetsバージョン(2.6)では、このスタイルはとして知られてwxMULTIPLEいましたwxFD_MULTIPLEが、どの2.8.xバージョンでも確実に利用できます。実際に何が起こっているのかを理解できるように、取得したエラー(の始まり)を指定する必要があります。

完全に独立して、メモリリークが含まれているため、コードが間違っています。モーダルダイアログは、すべてのウィンドウをヒープに割り当て、スタックに割り当てることができる、つまり単純なローカルとして使用できるという通常のルールの例外であるため、ダイアログを破棄する必要があります。変数については、ドキュメントの例を参照してください。「ダイアログ」のサンプルコードを確認することも強くお勧めします。

于 2012-12-26T20:20:51.967 に答える