アプリケーションを起動するとShowWindow()関数でウィンドウを非表示にした後、タスクトレイにアイコンを表示させているんですけど、そういう訳でウィンドウが要らないんですよね。
で、ウィンドウを削除したらウィンドウメッセージを受け取るウィンドウが無いせいかメッセージに対して反応してくれません。別に、メッセージを受け取るだけの為にウィンドウを作ってたっていいんですけど、なんだかスッキリしないもので...。
ウィンドウメッセージを処理したいんですけど、ウィンドウが無いとできないんでしょうか?
ウィンドウメッセージの処理。
Re: ウィンドウメッセージの処理。
> アプリケーションを起動するとShowWindow()関数でウィンドウを非表示にした後、タスクトレイにアイコンを表示させているんですけど、そういう訳でウィンドウが要らないんですよね。
> で、ウィンドウを削除したらウィンドウメッセージを受け取るウィンドウが無いせいかメッセージに対して反応してくれません。別に、メッセージを受け取るだけの為にウィンドウを作ってたっていいんですけど、なんだかスッキリしないもので...。
>
> ウィンドウメッセージを処理したいんですけど、ウィンドウが無いとできないんでしょうか?
ウィンドウメッセージを飛ばす先の指定方法が nid.hWnd パラメータしか存在しなので
ウィンドウは必須だと思います。
調べてもウィンドウを非表示にして・・・というものばかりでした。
(Windows2000くらいからメッセージ処理用の存在しないウィンドウ?を作れる
というようなのを見た記憶があったのですが、探しても見つかりませんでした)
> で、ウィンドウを削除したらウィンドウメッセージを受け取るウィンドウが無いせいかメッセージに対して反応してくれません。別に、メッセージを受け取るだけの為にウィンドウを作ってたっていいんですけど、なんだかスッキリしないもので...。
>
> ウィンドウメッセージを処理したいんですけど、ウィンドウが無いとできないんでしょうか?
ウィンドウメッセージを飛ばす先の指定方法が nid.hWnd パラメータしか存在しなので
ウィンドウは必須だと思います。
調べてもウィンドウを非表示にして・・・というものばかりでした。
(Windows2000くらいからメッセージ処理用の存在しないウィンドウ?を作れる
というようなのを見た記憶があったのですが、探しても見つかりませんでした)
Re: ウィンドウメッセージの処理。
メッセージ処理のためにメッセージプロシージャは必須ですが、7さん さんが書きました:> ウィンドウメッセージを処理したいんですけど、ウィンドウが無いとできないんでしょうか?
ウインドウは必ずしも表示する必要は無かったと思います。
CreateWindowEx()のウインドウスタイル[dwStyle As DWord]に
WS_VISIBLEを指定しなければ良いのではないでしょうか?
そうすると確かタスクバーには最初から表示されなかったような虚覚えが・・・。
(まぁ、表示されないだけで窓を作っていることに変わりは無いわけですが^^;)
・・・Σは、これはノッチさんと同じ結論か(汗)<非表示にして・・・というものばかり
Re: ウィンドウメッセージの処理。
> > ウィンドウメッセージを処理したいんですけど、ウィンドウが無いとできないんでしょうか?
>
> ウィンドウメッセージを飛ばす先の指定方法が nid.hWnd パラメータしか存在しなので
> ウィンドウは必須だと思います。
> 調べてもウィンドウを非表示にして・・・というものばかりでした。
そうですか...。
やっぱりウィンドウを非表示にして我慢するしかないんですね。
> (Windows2000くらいからメッセージ処理用の存在しないウィンドウ?を作れる
> というようなのを見た記憶があったのですが、探しても見つかりませんでした)
この情報に関しては、頭の隅っこでアンテナを張っておこうと思いますっ。
ノッチさん、どうもありがとうございました。
追記。
被ってしまいました( ̄□ ̄;)
> CreateWindowEx()のウインドウスタイル[dwStyle As DWord]に
> WS_VISIBLEを指定しなければ良いのではないでしょうか?
> そうすると確かタスクバーには最初から表示されなかったような虚覚えが・・・。
>
> (まぁ、表示されないだけで窓を作っていることに変わりは無いわけですが^^;)
そういえば、いちいちShowWindow()関数で非表示にしなくてもウィンドウプロパティの「可視」のチェックを外せば楽ですよね。
ウィンドウが無くても大丈夫な方法じゃないですけど、わざわざ非表示にするっていう違和感か何かが消えたような気がします。
>
> ウィンドウメッセージを飛ばす先の指定方法が nid.hWnd パラメータしか存在しなので
> ウィンドウは必須だと思います。
> 調べてもウィンドウを非表示にして・・・というものばかりでした。
そうですか...。
やっぱりウィンドウを非表示にして我慢するしかないんですね。
> (Windows2000くらいからメッセージ処理用の存在しないウィンドウ?を作れる
> というようなのを見た記憶があったのですが、探しても見つかりませんでした)
この情報に関しては、頭の隅っこでアンテナを張っておこうと思いますっ。
ノッチさん、どうもありがとうございました。
追記。
被ってしまいました( ̄□ ̄;)
> CreateWindowEx()のウインドウスタイル[dwStyle As DWord]に
> WS_VISIBLEを指定しなければ良いのではないでしょうか?
> そうすると確かタスクバーには最初から表示されなかったような虚覚えが・・・。
>
> (まぁ、表示されないだけで窓を作っていることに変わりは無いわけですが^^;)
そういえば、いちいちShowWindow()関数で非表示にしなくてもウィンドウプロパティの「可視」のチェックを外せば楽ですよね。
ウィンドウが無くても大丈夫な方法じゃないですけど、わざわざ非表示にするっていう違和感か何かが消えたような気がします。