スポンサーリンク

wxWidgetsでwxImage::LoadFileが失敗したときに出るFailed to load image from fileを消す

wxImage::LoadFileを使用したら、Failed to load image from fileというエラーダイアログが出た。エラーは自分で処理したいので、このダイアログが出ないようにしたい。

  void PostCreate() {
    
    wxImage myimage;
    // エラーの時、望まないメッセージボックスが出る
    bool ret = myimage.LoadFile(R"(D:\test.jpeg)", wxBITMAP_TYPE_PNG);
    
    this->Layout(); // レイアウトの更新
  }

wxLogNullでメッセージ出力を抑制

wxLogNull のインスタンスを作成しておくと、そのインスタンスが破棄されるまではログの出力を行わない。

  void PostCreate() {
    
    {
      // ログを表示しない
      // logNo がスコープを抜けるまでエラー時のログがメッセージボックスで表示されない
      wxLogNull logNo; 

      wxImage myimage;
      // エラーの時、望まないメッセージボックスが出る
      bool ret = myimage.LoadFile(R"(D:\test.jpeg)", wxBITMAP_TYPE_PNG);

      // エラーハンドリングを自分で行う
      if (ret == false) {
        wxMessageBox("画像の読み込みに失敗しました");
        return;
      }
    }
    this->Layout(); // レイアウトの更新
  }

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)


この記事のトラックバックURL: