C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.69674 の関連記事表示

<< 0 >>
■69674  Re[1]: メインウィンドウの判断はどうやって行うの?
□投稿者/ オショウ -(2014/01/19(Sun) 13:30:41)
    No69673 (C#初心者 さん) に返信
    > これを行いたい理由は、
    > あるタイミングでメインのウィンドウがC#で作成したアプリケーション以外
    > の場合に、メインのウィンドウをC#で作成したアプリケーションに
    > 強制的に戻したいためです。
    >
    > どなたかアドバイスのほどお願いします。

      簡単に・・・とすると、基本、ウィンドウやコントロールには
      フォーカスを得た場合とフォーカスが無くなった場合のイベント
      があります。

      他のウィンドウで作業と言うことは、そのメインたるウィンドウ
      はそれ以前にフォーカスをロストしたことになり、イベントが発
      生したはずです。

      よって、フォーカスがロストした以降で、何かの通信手段で表に
      なるよう知らせることができれば、メインウィンドウの方で、自
      身がフォーカスを再取得するように動作させれば、欲しい機能と
      なると思います。

      ただ、フォーカスをロストした後、何を以って表に持ってこさせ
      るか?と言う判断をどうするかです。
      一般的には、スクリーンセーバーのように何もイベントが無くな
      ってしまい、所定の時間経過した場合に何らかのイベントを発生
      させて、メインウィンドウを表にさせる。と言う動作でしょうか

      しかしながら、全てのアプリに何らかの連携する機能を組み込ま
      ないといけないので、自分で作ったものでは無いアプリにも・・・
      となると使えませんネ!

      メインのアプリだけに細工するならば、スクリーンセーバーモド
      キの機能を組み込んで、所定時間、デスクトップにイベントが発
      生しなくなったら、自分自身のメインウィンドウを表にさせる。
      と言うような動きなら、メインのプログラムだけで済むかと思い
      ます。

      残るは、本当にスクリンセーバー作って、メインのアプリに知ら
      せる方式とすることでしょうか。通知方法は、API のPostMessage
      でよいかと。メインのアプリは、WndProcをオーバーライドすれば
      PostMessageされたWM_USER+αのメッセージが受け取れるので。

    ※ 最終的には、簡単にはいかないか・・・

    以上。参考まで
記事No.69673 のレス /過去ログ119より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -