> subaru さん
> SendMessageの方が安全とは言いませんが、
> メッセージが入れ子になったらループというのは
> PostMessageも同様で安全というわけではありません。
Send/Postのどちらがより安全か?なんてことに意味は無いですよね。
正しく使用すればいいだけの話です。
> SendMessageを使うかPostMessageを使うかはケースバイケースです。
もちろんその通りです。
> 今回の場合は親側の処理がメッセージ投げっぱなしで問題ないように作ってあれば
> PostMessageでもいいですが、親側からの応答を受け取りたいとか
> ツリービュー側と同期的に動いてほしいようなものであれば
> むしろSendMessageの方が適切ということになり得ます。
今回の場合、どのように動かそうとしているのかが不明ですので、その判断はできな
いですよね。
大元の質問が
> 引数受け渡しについて学習中で、試しに
> ツリービュー変更時のイベントで文字列を抜き出して取得する
> と言うプログラムをPostMessageを使って作成しています。
だったので、PostMessageを使用するんだったら、こうじゃないのかな。
という視点で書いたつもりです。Send/Postのどちらがふさわしいか?はその場面次第
なので、かれーさんの判断で使い分ければいいでしょう。
最も今回の場合、本当にメッセージを使う必要があるのかも疑問ですけどね。
メッセージの代わりにイベントハンドラを直接呼び出したっていいわけだし。
> ご教授頂いたおかげで、理解して動かしていたつもりですが、勘違いがあったらすみ
> ません。
本当に理解しているのかなぁ。本当に理解していれば、「渡すべき」「記述すべき」
などと「べき」をつかうわけないんだけど。「べき」と書かれると「そうした方が
良い」程度にしか思われていないのかな、と思ってしまう。ここではそうしないの
はバグですよ。
>maru さん
親側の処理がわからない状態で両方の方法が示されていたので
maruさんの意図は理解していたつもりですが、
スレの流れでPostMessageの方が推奨動作と勘違いする人も
いるかもしれないので念のための書き込みのつもりでした。
#私がVC++以外の言語では同一スレッドでPostMessage相当の処理を多用することって
#あんまりないような・・・と思っているせいもあるかもしれませんが。
>最も今回の場合、本当にメッセージを使う必要があるのかも疑問ですけどね。
>メッセージの代わりにイベントハンドラを直接呼び出したっていいわけだし。
そうですね。ただそのためには子の方で親側の実装を知っている必要がありますが。
まじめに作りこむならJAVAのイベントリスナーもどきを作ったりとか
.NETのデリゲートもどきを作ったりとかの方法もあるでしょうがけっこう面倒だし、
使い捨てのUIコードなら結局メッセージで処理しちゃうのが楽ってのはあるかも。。。
>maruさん
> 最も今回の場合、本当にメッセージを使う必要があるのかも疑問ですけどね。
> メッセージの代わりにイベントハンドラを直接呼び出したっていいわけだし。
今回は、あくまで勉強のために、メッセージを送ってイベントを起こせるかどうか?を
試したかっただけですので、メッセージを使う意味は全くありません。
> 「べき」と書かれると「そうした方が良い」程度にしか思われていないのかな、
どちらかと言うと、「~するべきですよね?」と言うような疑問系な意味合いで使ってま
した。
理解した、と言っておいてすみません。自信の無さの表れが・・・
一応、「そうしなければならない」と言う意味で認識はしてるつもりです。