◀ANSI版開発トップへ
  • 3498 処理中のメッセージループ動作
    • 3500 Re:処理中のメッセージループ動作
      • 3593 Re2:処理中のメッセージループ動作
        • 3596 Re3:処理中のメッセージループ動作
          • 3608 Re4:処理中のメッセージループ動作
  • [3498] 処理中のメッセージループ動作 もか 2004年03月25日 23:56

    ect_uty のBlockingHookでメッセージを処理していますが、処理の最中にデータを参照・変更されて危ない状態になる可能性は無いのでしょうか?
    ファイルを読み込み中に、保存とか、入力とか大丈夫だろうか。
    • [3500] Re:処理中のメッセージループ動作 ぜん 2004年03月26日 06:37

      BlockingHookだけみました。
      ここでは各場所から呼び出されたときのメッセージの処理のみ
      のように思われます。
      各場所でハンドルロックや確保などの前後配置が
      きちんとなされていれば大丈夫だと思いますが・・・
      各場所を見てないので分かりませんが。。。(汗
      どうでしょう・・・?
      • [3593] Re2:処理中のメッセージループ動作 もか 2004年05月27日 01:14

        Grep中に、そのウィンドウで新たにGrepダイアログを出してGrepすると、Grep実行中ダイアログが2つ表示されて、両方キャンセルすると、ヌル参照して落ちます。
        • [3596] Re3:処理中のメッセージループ動作 みく 2004年05月27日 18:35


          bool bNowProcessing = false;
          BlockingHook(){
          bNowProcessing = true;
          ...
          bNowProcessing = false;
          return TRUE;
          }

          HandleCommand(){
          if( bNowProcessing ){
          MsgBox("処理中です。"); //<--出していいのかなぁ
          return;
          }
          }

          でどうでしょう。
          • [3608] Re4:処理中のメッセージループ動作 もか 2004年05月31日 01:20

            MsgBoxは邪魔ですし、作画関数内から呼び出すと無限ループしてくれるので、MsgBeepにしませんか。
            ・Alt+F4のファイルを閉じる
            ・WM_CLOSE→CEditDoc::OnFileClose→保存処理
            とかも動かなくなったらイヤだけど..もともと動かないか。
            処理の途中で保存することもないし。

            # すべて置換は、親ウィンドウをdisableにして凌いでいたり、
            # Grepはウィンドウを閉じようとするとダイアログを出したり、一貫性は無いけど、多少なんかやってますね。
            # その辺とも総合的に管理できるといいんだけどなあ。