WM_USERとWM_APPの意味と使い分けの質問

解決


ぴょぴょ  2007-11-26 07:41:18  No: 66994

また、お世話になります。

単刀直入にお聞きします。
(1)WM_USER、WM_APPメッセージの意味を教えて欲しい。
(2)下のWebページにある「プライベートウィンドウクラス」とは何ですか?
(3)独自のメッセージを定義して使う場合はWM_USERとWM_APPのどっちが良いのか?
(4)両方ともアプリケーションで独自のメッセージを定義するときに使えるのですか?
(5)Windows 95/98/Meで WM_USER+0x0100 より大きい値で定義しないといけない。って本当?

http://yokohama.cool.ne.jp/chokuto/urawaza/message/WM_USER.html
http://yokohama.cool.ne.jp/chokuto/advanced/message/WM_USER.html
ちょっと多いですが基本的にWM_USERとWM_APPの使い分けを知りたいのです。
あと独自メッセージを定義するときは、どちらを使うべきかを知りたいです。

メッセージに詳しい方、経験者などにお聞きしたいです。
お願い致します。


wclrp ( 'o')  2007-11-26 08:04:16  No: 66995

WM_USER+小さい値は
ダイアログやプッシュボタンとかで
すでに独自メッセージとして使っているから
WM_USER+小さい値を避けようってことですよ。

WM_APPではそんな気を使う必要ないってことですよ。

昔はWM_USERだったけど
後からWM_APPを推奨する話を見かけるようになった。

Windows 95/98/Me限定の話じゃないと思うが意図がわからない。


maru  2007-11-26 20:34:02  No: 66996

> Windows 95/98/Me限定の話じゃないと思うが意図がわからない。
MSDNにWM_USER〜0x7FFFは
"These values cannot be used to define messages that are meaningful throughout an 
application, because some predefined window classes already define values in this 
range. For example, predefined control classes such as BUTTON, EDIT, LISTBOX, and 
COMBOBOX may use these values. "
と書いていて、
  Windows NT/2000/XP: Included in Windows NT 3.1 and later.
  Windows 95/98/Me: Included in Windows 95 and later.
  (2001年10月版)
となっているので、Windows3.1以前と比べているのでしょう。

最新のMSDNではさすがに
Minimum operating systems : Windows 95, Windows NT 3.1 
となっているようです。


maru  2007-11-26 21:41:03  No: 66997

件のwebページはMSDNの翻訳みたいだけど、Windows 95/98/Me云々の部分は
VC6, 2003, 2005のどこにも見つけられなかった。もしかすると2002?


ぴょぴょ  2007-11-27 02:45:14  No: 66998

wclrp ( 'o')さん。
maruさん。
レスありがとう。

> WM_USER+小さい値は
> ダイアログやプッシュボタンとかで
> すでに独自メッセージとして使っているから
> WM_USER+小さい値を避けようってことですよ。
これを元にヘッダファイルを検索してみました。
確認したところ既に EM_XXXX などで WM_USER+α が使われていますね。
WM_USER+1 〜 WM_USER+0x1C00 は利用しない方が良いですね。

> WM_APPではそんな気を使う必要ないってことですよ。
こちらは ScrnSave.h(166行) で1つだけ
> #define SCRM_VERIFYPW   WM_APP
とあるだけです。

> Windows 95/98/Me限定の話じゃないと思うが意図がわからない。
僕も良く分からなかった。
ボタンとかエディットボックスなどで既に使われているから、Windows 9x系に
限定する必要はないよね。Windows NT系も同じことですよね。

> プライベートウィンドウクラス
これってボタンとかのクラスで一部使われている事かな?

> 独自メッセージを定義するときは、どちらを使うべきかを知りたいです。
これは WM_USER よりも WM_APP+α が良さそうですね。

解決しました。


ぴょぴょ  2007-11-27 02:47:58  No: 66999

解決チェックし忘れた。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加