​C#中RegisterWindowMessage和PostMessage怎么用

avatar
作者
猴君
阅读量:0

在C#中,可以使用RegisterWindowMessagePostMessage来进行窗口消息的注册和发送。

  1. 注册窗口消息:
[DllImport("user32.dll", CharSet = CharSet.Auto)] public static extern uint RegisterWindowMessage(string lpString);  // 注册窗口消息 uint message = RegisterWindowMessage("MY_CUSTOM_MESSAGE"); 
  1. 发送窗口消息:
[DllImport("user32.dll", CharSet = CharSet.Auto)] public static extern bool PostMessage(IntPtr hWnd, uint msg, IntPtr wParam, IntPtr lParam);  // 发送窗口消息 IntPtr hWnd = IntPtr.Zero; // 目标窗口的句柄 IntPtr wParam = IntPtr.Zero; // 消息的wParam参数 IntPtr lParam = IntPtr.Zero; // 消息的lParam参数 bool result = PostMessage(hWnd, message, wParam, lParam); 

需要注意的是,PostMessage函数是异步发送消息,即发送消息后不会等待目标窗口的处理结果。如果需要等待目标窗口处理完毕并获取返回结果,可以使用SendMessage函数进行同步发送消息。

另外,RegisterWindowMessage函数用于注册一个自定义的窗口消息,返回值为消息的唯一标识符。这个唯一标识符可以用于区分不同的窗口消息,确保消息的唯一性。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!