【发布时间】:2010-11-30 18:05:14
【问题描述】:
public partial class Form1 : Form
{
[DllImport("coredll.dll")]
static extern int SetWindowLong(IntPtr hWnd, int nIndex, int dwNewLong);
const int GWL_WNDPROC = -4;
public delegate int WindProc(IntPtr hWnd, uint msg, long Wparam, long lparam);
public Form1()
{
InitializeComponent();
WindProc SampleProc = new WindProc (SubclassWndProc);
SetWindowLong(this .Handle , GWL_WNDPROC,
SampleProc.Method .MethodHandle.Value.ToInt32());
}
public int SubclassWndProc(IntPtr hwnd, uint msg, long Wparam, long lparam)
{
return 1;
}
这是我试图获取窗体的窗口过程的示例,这就是我在 C++ 中所做的事情,如果我在 C# .net 3.5 中尝试相同的操作,我很容易获得windwproc,我无法获得窗口过程,, 调用 SetWindowLong API 后应用程序挂起并弹出一些不发送报告...我已经阅读了这是获取窗口过程的方法.. 请让我知道我是否犯了错误...
【问题讨论】:
标签: c# .net-3.5 windows-mobile compact-framework