none
マウスフォーカスを持たないFormは実現可能でしょうか? RRS feed

  • 質問

  • VDTによるストレスを感じています.ハードによる対処では液晶保護フィルタをモニタに取り付けるなどありますが,

    簡単に,Form1のプロパティで,OpacityとTopMostを設定して,ソフトウエア的に好みの色にしたいと考えています.

    (仮称 ソフトウエアフィルタ)

    最大の問題は,マウスクリック時にフォーカスが(仮称 ソフトウエアフィルタ)に,移ってしまい,

    下にあるウインドウの操作ができなくなってしまうことです.

     

    表題のマウスフォーカスを持たないFormは実現可能でしょうか?

     

    これができたら,作業を邪魔しない,透過スライドショーを作りたいと考えています.

    2008年10月3日 9:43

回答

  •  kozan さんからの引用

    最大の問題は,マウスクリック時にフォーカスが(仮称 ソフトウエアフィルタ)に,移ってしまい,

    下にあるウインドウの操作ができなくなってしまうことです.

     

    表題のマウスフォーカスを持たないFormは実現可能でしょうか?

    そのFormにウィンドウスタイルとして WS_EX_TRANSPARENT を持たせれば実現できます。

    自分のFormクラスにCreateParamsメソッドのオーバーライドを作成し、ExStyle |= WS_EX_TRANSPARENT;みたいな感じです。

     

    WinUser.hより

    #define WS_EX_TRANSPARENT       0x00000020L

     

     

     

    こんなところでしょうか。

    この場合、移動すらできなくなりますのでご注意ください。

    Code Snippet

    static const int WS_EX_TRANSPARENT = 0x00000020;
    property System::Windows::Forms::CreateParams^ CreateParams
    {
     virtual System::Windows::Forms::CreateParams^ get() override
     {
      System::Windows::Forms::CreateParams^ cp = __super::CreateParams;
      cp->ExStyle |= WS_EX_TRANSPARENT;
      return cp;
     }
    }

     

     

    2008年10月3日 13:57
    モデレータ

すべての返信

  •  kozan さんからの引用

    最大の問題は,マウスクリック時にフォーカスが(仮称 ソフトウエアフィルタ)に,移ってしまい,

    下にあるウインドウの操作ができなくなってしまうことです.

     

    表題のマウスフォーカスを持たないFormは実現可能でしょうか?

    そのFormにウィンドウスタイルとして WS_EX_TRANSPARENT を持たせれば実現できます。

    自分のFormクラスにCreateParamsメソッドのオーバーライドを作成し、ExStyle |= WS_EX_TRANSPARENT;みたいな感じです。

     

    WinUser.hより

    #define WS_EX_TRANSPARENT       0x00000020L

     

     

     

    こんなところでしょうか。

    この場合、移動すらできなくなりますのでご注意ください。

    Code Snippet

    static const int WS_EX_TRANSPARENT = 0x00000020;
    property System::Windows::Forms::CreateParams^ CreateParams
    {
     virtual System::Windows::Forms::CreateParams^ get() override
     {
      System::Windows::Forms::CreateParams^ cp = __super::CreateParams;
      cp->ExStyle |= WS_EX_TRANSPARENT;
      return cp;
     }
    }

     

     

    2008年10月3日 13:57
    モデレータ
  • モニタを見るとストレスを感じるとのことですが、

    モニタだけ、どうにかすれば十分な場合なら、有意義なソフトかもしれません。

    しかし、対象が羞明(しゅうめい)の場合、視界全体の光量が関係するので

    モニタだけ調整しても意味がありません。サングラスかゴーグルの方がましです。

    事情が許すのなら眼の専門家に相談してみるのが早道かもしれません。

    ちなみに、自分も軽度の羞明と言われましたので、モニタは暗めの設定にしています。

     

     

     

     

    2008年10月6日 4:59
  •  

    Azulean様ありがごうございます.

     

    良いやり方ではないのかもしれないのですが,とりあえず,

    Form1.hのprotectedセクションに,教えていただいたコードをペーストしたところ,

    マウスフォーカスを持たないFormを実現できました.

     

    今後,タスクバーからのコマンド送信によって,設定を変更できるように

    していきたいと考えております.

    2008年10月6日 6:55
  • 仲澤様

    回答ありがとうございます.

    「羞明」という症状は初めて聞きました.私の場合,背景が白画面のときに疲れを強く感じます.

    設定変更が可能な場合には,白黒を反転させて使用しています.

    精神的な面が大きいようで,パソコンで風景写真を見ているときはそれほど疲れないのに,

    ワープロ作業等を行っていると非常に疲れます.

    (今回の目的は,うっすらと風景写真を透過表示させておけば,少しは楽になるかと考えた

    からでございます.)

    今後ともよろしくお願いいたします.

    2008年10月6日 7:05
  • フォーラムの趣旨とは外れますが…

     kozan さんからの引用

    私の場合,背景が白画面のときに疲れを強く感じます.

    モニタが明るすぎたり、 色温度が高過ぎ (青みががってい) たりしませんか?

    白色の紙 (コピー用紙など) をモニタの横に並べて、 画面の白色と比べてみてください。


     kozan さんからの引用

    パソコンで風景写真を見ているときはそれほど疲れないのに,ワープロ作業等を行っていると非常に疲れます.


    風景写真は 「眺めて」 いるのに、 ワープロ作業等では 「注視」 し続けていませんか。
    ワープロ作業等の最中でも、 風景写真を眺めている時のように、 画面を広く眺めた状態で作業できるようになると、 目の疲れは軽くなるようです。
    ※ これが人によっては難しいことだ、 というのは分かっています。 私は自然に出来ていたのでなんとも思っていなかったのですが、 家内にはコツを上手く伝えられず、 いまだに出来ないでいます。 ( そして、 家内は 1時間くらいの作業で疲れ果てているようです。 )
    2008年10月7日 6:49
  • biac様

    返信が遅くなりまして申し訳ありません.「注視」について,まさにその通りでございます.

    離れても見えるはずなのに,文章の内容が難しくなればなるほど,何とか理解(集中)しようと思うあまりに,

    画面に目が近づいていってしまいます.

    コツがあると思いますので,これから注視しないように意識してパソコン作業にあたろうと思います.

    ありがとうございました.

    2008年10月10日 0:19