?C#中RegisterWindowMessage和PostMessage怎么用

?C#
2139
2023/11/11 13:31:28
栏目: 编程语言
开发者测试专用服务器限时活动,0元免费领,库存有限,领完即止! 点击查看>>

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

  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函数用于注册一个自定义的窗口消息,返回值为消息的唯一标识符。这个唯一标识符可以用于区分不同的窗口消息,确保消息的唯一性。

辰迅云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>

推荐阅读: ?C#中maskedtextbox和textbox的区别是什么