C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 7 を表示中)
■7786 / )  コールバック関数からコントロールの操作
□投稿者/ cona 二等兵(10回)-(2006/10/26(Thu) 17:39:50)

分類:[C#] 


分類:[C#] 

いつもお世話になっています。

MSDNに以下のコールバック関数を実装するサンプルがありますが、
http://msdn2.microsoft.com/ja-jp/library/843s5s5x.aspx

using System;
using System.Runtime.InteropServices;

public delegate bool CallBack(int hwnd, int lParam);

public class EnumReportApp {

[DllImport("user32")]
public static extern int EnumWindows(CallBack x, int y);

public static void Main()
{
CallBack myCallBack = new CallBack(EnumReportApp.Report);
EnumWindows(myCallBack, 0);
}

public static bool Report(int hwnd, int lParam) {
Console.Write("Window handle is ");
Console.WriteLine(hwnd);
return true;
}
}

これをフォームアプリケション上で実行するときに、
次のことを同時に実現できなくて困っています。

・EnumWindowsは別スレッドで実行すること
・コールバック関数内から、結果を逐次フォームに表示すること

1つ目は簡単にできますが、2つ目をしようとするとコールバック関数でInvokeする
必要があり、ビルドの時点で「静的でないメソッドが。。。」とエラーになります。

何かよい知恵はないものでしょうか?
宜しくお願い致します。

環境:WindowsXP VS2005Pro


0
返信 編集キー/


管理者用

- Child Tree -