- ベストアンサー
もう一歩進んだWindowsメッセージ処理は???
VC++でWindowsプログラミングをしています 代表的なWindowsメッセージの処理のサンプルは市販の参考書やWebに多数記載されていますが、更にもう一歩踏み込んだ事例などが見つかりません 特に困惑していることはメッセージ一覧表が見当たらないことです ← 結構時間を掛けましたが発見できません 以前に同様なことを質問された方がおいででしたが適当な回答が無かったようです 一覧表も見ないで皆さま方はあの煩雑なメッセージ処理をどのようにして取得されたのでしょうか? ぜひこの辺りのノウハウをお教え頂ければ幸いです 宜しくお願い申し上げます
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
最初に要旨だけお伝えします。 サンプルを見てまずは真似してください。 UI操作でよく使うようなメッセージや、終了メッセージなど特に有名なものは覚えておく必要がありますが、全てを覚えてから使いこなせるようになろう、という思考はAPIを使ったプログラミングにはあまり向きませんし、天才的な記憶力と検索力でもないかぎり時間的に現実的ではありません。そしてそんなことしなくても徐々に必要となるAPIをMSDNなどで検索していくことによって、そのドキュメントに大体関連するメッセージについての記述があります。そしてそれを見つけたらそのメッセージ名を使ってまたMSDNを検索してみるわけです。その繰り返しを続けていることによっていろいろわかってきます。 無論やりたいことを最初に決めてください。そうしないとなにを探したいのかすら決まりませんからね。 MFCのUI上で発生するイベントなどは大体使うものが決まっているので無数にあるというわけでもありません。しばらくいじっているうちに慣れます。またクラスの仮想メンバ関数としてイベントハンドラーが用意されていると思うので、自分がその時点で使おうとしているUIクラス(CDialogなど)で定義されているハンドラーをざっと見渡しておくのは有効です。 あとメッセージはユーザー定義のものも作れます。 あと難関は「メッセージチェイン」機構かなと思われますが、これはもうサンプルプログラムをサクッと見てまずはパターンを覚えてください。で、大体こう書けばこう使えるというのがわかったらMSDNでメッセージチェインの記事をあさってみてください。大体わかりますが、私も今はほとんどメッセージチェインを気にせずに書けてます。MFCって意外とそういう風に使えるように出来てます。 まぁMFC拡張のようなライブラリを作りたいという人はその辺の機構もしっかり抑えておくとよいかと。それほど難しくありません。 メッセージがよくわからないというのはものすごく理解できます。おそらくほとんどのMFC初心者はそう思うものでしょう。私もそうでした。 今は昔と違ってシンプルにまとめられたサンプルがたくさんあるので昔ほど迷わなくてすむと思います。
その他の回答 (3)
- Yanch
- ベストアンサー率50% (114/225)
こんなのとか? About Messages and Message Queues http://msdn.microsoft.com/en-us/library/ms644927%28v=VS.85%29.aspx
お礼
ありがとうございます 教えて頂いたページを印刷して電車の中でザッとですが読みました 理解するのに役立ちそうです またユックリと読みます ありがとうございました
- haniriito
- ベストアンサー率57% (12/21)
>一覧表も見ないで皆さま方はあの煩雑なメッセージ処理をどのようにして取得されたのでしょうか? >ぜひこの辺りのノウハウをお教え頂ければ幸いです 「取得」→「習得」というご質問として回答します。 正直なところ、ウィンドウメッセージをすべて覚えている人はいないと思います。また、全部覚えても意味はないでしょう。おおよそどんなメッセージがあるか(ありそうか)だけをおぼろげながら記憶していて、あとはその都度MSDNへヘルプで調べたりしながら書いていくものだと思います。 ウィンドウやキーボード/マウス関係に関する一般的なメッセージと、基本的なコントロール(editやリストコントロールなど)のメッセージ(特にMFCを使うなら通知メッセージ)だけ覚えていれば、あとはその都度ヘルプ参照で十分事足りると思います。ですので、メッセージの一覧表が欲しいと思ったことはありませんね。 同じように考えれば、質問者様は「Win32 APIの全関数リファレンスが欲しい」とか考えたりしますか?それこそメッセージの比にならないくらい膨大な数の関数がありますから、全部「習得」することなんてムリです。その都度調べて、使えそうなものを使う、の繰り返しです。 それとも、もしかして「WM_」で始まるメッセージの綴りが覚えられない、どうやって覚えるのか?というご質問ですか?そうであれば、基本的なメッセージハンドラなどはVisualStudioのウィザードで入力できますし、手打ちする場合でも最初の"WM_"くらいだけ入れといてCTRL+spaceを押せばインテリセンスが候補を表示してくれるから、それこそ覚えなくても済みます。 >もう一歩踏み込んだ事例などが見つかりません 質問者様のいう「もう一歩踏み込んだ事例」というのは、メッセージの一覧のことばかりじゃないですよね。 あなたが足りない、知りたいと思うことを整理して質問されると、回答も得やすいと思います。
お礼
ありがとうございます Windowsプログラミングに深いご造詣をお持ちに方は達観されておいででしょうが、初心者は焦るばかりです 次々に分からない事象が発生して、その解決に時間がかかってしまいます 『あなたが足りない、知りたいと思うことを整理して質問されると、回答も得やすいと思います』は御もっともとは思いますが、その余裕がありません 毎日ジタバタしております ありがとうございました
単にどんなメッセージがあるのか知りたいという事であれば、 Windows SDK インストールして、winuser.h でも見ればよいかと思うのですが、それではダメでしょうか。 http://msdn.microsoft.com/ja-jp/windows/bb980924 多分全部網羅したような書籍はないかもしれません。昔はあったと思いますが。。。
お礼
ありがとうございます 『単にどんなメッセージがあるのか知りたいという事』ではなく、全体的にボヤァ~としているのです 読んでも読んでも先が見えない、そんな焦燥感に追われています これからも努力します ありがとうございました
お礼
ありがとうございます ともかく諦めずに続けます でもひとつ分かると、3つ分からないことだ出てきます ウンザリしますが努力致します ありがとうございました