トップ回答者
FormにWndProcを組み込む

質問
-
.NET Flameworkを採用時に要求される基本機能を確認するため、下記サイトにあるc#の例をForm1.hに組み込みたいのですが、どのように記述すればよいか教えてください。基本機能の確認は必須ですので、採用判断の前に行いたいのです。vc++2010Express使用。
基本機能とは、別プロセスでこのプロセス宛に送出したメッセージを受信すること。c++builderXE2では確認済です。おなじWindProcメソッドを使い、特定メッセージを処理します。http://www.atmarkit.co.jp/fdotnet/dotnettips/467wndproc/wndproc.html
//Form1.hのそれらしきところを抜粋。
protected:
//このあたりに書けばよいかと思うのですが・・・・・
protected override void WndProc(ref Message m){
//チェックしたいコード(構造体mのメンバMessageを参照する)
if(m.Message == WM_APP) std::cout << message recieve\n";//受信の確認base.WndProc(ref m);
}
/// <summary>
/// 使用中のリソースをすべてクリーンアップします。
/// </summary>
~Form1()
{
if (components)
{
delete components;
}
}******
c++BuilderXE2ではTForm1に記述しています。
回答
すべての返信
-
Visual C++ における WndProc の書き方であれば、.NET Framework フォーラムは適しないという指摘は私も同意見です。
.NET Framework フォーラムで話題に挙げるのであれば、言語固有の書き方とか問題とかを含めずにご質問ください。
たとえば、C#、C++、VB.NET などのコードを書かずに、.NET Framework のクラスを取り上げて文章で説明するというものであれば、.NET Framework フォーラムで違和感はありません。(Q:Form クラスに来る、WM_APP + 1 のメッセージを受け取る方法がわかりません → A:WndProc メソッドをオーバーライドしてください)ところで、MSDN のページの例(C++ タブを選択するなどしてください)を見た上でのご質問なのでしょうか。
// WndProc はプロセス宛ではなく、ウィンドウ宛のメッセージを受け取る場所です。
// TForm1 を例に出されていることから、プロセス宛ではなく、ウィンドウ宛という解釈していますが。 -
こんにちは、sige2 さん。
MSDN フォーラムのご利用ありがとうございます。オペレーターの山本です。
次回から、同じ内容の質問を新規にスレッド立てて行う場合には、お手数です元のスレッドのステータスを完了させてくださいね。
元のスレッドに移動先のスレッドのリンクを記載して、そこに回答マークしていただければ後から見た人も分かりやすいと思います。
複数のスレッドで同じ話題を扱う場合、両方で話が進んでしまうと質問者も回答者も混乱することが過去に多くありましたので、ご協力いただけるとうれしいです。
恐れ入りますが、よろしくお願いいたします。
__________________________
日本マイクロソフト株式会社 フォーラム オペレーター 山本 春海 -
こんにちは、sige2 さん。
MSDN フォーラムのご利用ありがとうございます。オペレーターの山本です。
ご質問の件ですが、もちろんsige2 さんがご理解されているように、通常、参考になった投稿に回答としてマークしていただいています。
スレッド オーナーである sige2 さんは「回答としてマーク」を解除することもできますし、sige2 さんが参考になったと思う投稿にさらに「回答としてマーク」することもできます。
ただ、今回の場合にはすでに別のカテゴリにも同じ内容の投稿をされていたので、混乱防止のため、続きのスレッドが分かる投稿に私のほうで回答としてマークさせていただき、こちらのスレッドを終了させていただきました。
(複数のスレッドで同時に同じ質問をオープンすることは、混乱するのでご遠慮いただいています。)
回答マークしたことで、後にこのスレッドを閲覧した人は続きのスレッドに誘導されます。もしこの質問に返信する場合には、続きのスレッドに返信することが自然な流れになると思います。
「回答の候補に設定」は、サインインしていればスレッドの閲覧者は誰でもクリックすることができます。
「回答としてマーク」は、基本的に質問者がクリックできますが、場合によってはモデレーターがクリックすることがあります。
その都度、状況に合わせて判断いただいていいと思います。
_________________________
日本マイクロソフト株式会社 フォーラム オペレーター 山本 春海- 編集済み 山本春海 2012年8月20日 1:40