2019年07月12日

恥ずかしがり屋のエラーダイアログ

ListView to CSVで、データ保存中に連続でエラーが発生した場合、妙な挙動が起こることが分かりました。

連続でエラーが発生する場合……というか、データ保存が失敗するときは、書き込み失敗なので、だいたい連続で発生するわけですが、ある程度は前面に出てきていたエラーダイアログが、ある時点から急に背後に隠れ始めます。

201907_hazukashi1.jpg
エラーダイアログが連続で何回も発生するので[OK]を押し続けていると、
201907_hazukashi2.jpg
急に後ろに隠れだす。

どうやら、親ウィンドウのWM_DESTROYが子ウィンドウに伝播して、子ウィンドウでWM_DESTROYが発生していることによる発生するようです。
ListView to CSVは少し特殊な作りをしており、各ウィンドウごとに保持するデータは、そのウィンドウが破棄されるタイミングで保存されます。なので、WM_DESTROYが伝播するときは、それぞれのWM_DESTROYごとにデータ保存が実行されます。

これであちこちのウィンドウごとに(しかも破棄されながらの状態で)メッセージボックスを出すと、こんな感じでおかしなことになるらしい。

状況によっては、背後に隠れたことがユーザーから認識できず、終了できなくてユーザーが混乱することになりかねないので、何らかの対応を行おうかと思います。

メッセージダイアログをTOPMOST(最前面)指定にしてしまうとか。


しかも、エラーダイアログを出しつつも、処理継続しているので、本当はエラーではなく警告(ワーニング)とするのが正しい。これも修正しなきゃ。


posted by ayacy at 23:23 | Comment(0) | TrackBack(0) | プログラミング
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
※ブログオーナーが承認したコメントのみ表示されます。
この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/186266585
※ブログオーナーが承認したトラックバックのみ表示されます。
※言及リンクのないトラックバックは受信されません。

この記事へのトラックバック