多线程间消息通讯
2021-02-12 20:16
标签:函数 lpm width 自定义消息 消息队列 pre wms size def 自定义windows消息 #define MY_MSG (WM_USER+1) //为了防止用户自定义消息ID与系统消息ID冲突,用户只能定义WM_USER(0x0400)以后的ID使用 PostThreadMessage 将一个队列消息放入(寄送)到指定线程的消息队列里,不等待线程处理消息就返回 目标线程通过GetMessage()方法来接收消息,若无消息则阻塞 PeekMessage 为一个消息检查线程消息队列,并将该消息(如果存在)放于指定的结构(窥探消息队列中的消息) 多线程间消息通讯 标签:函数 lpm width 自定义消息 消息队列 pre wms size def 原文地址:https://www.cnblogs.com/liu6666/p/12730192.htmlBOOL PostThreadMessage(
DWORD idThread, //接收消息的线程标识符
UINT Msg, //指定被寄送的消息
WPARAM wParam, /附加的消息特定信息
LPARAM IParam //附加的消息特定信息
);
//线程没有消息队列,此函数将失败
BOOL GetMessage(
LPMSG lpMsg, //接收消息的线程ID
HWND hWnd, //取得消息的窗口的句柄,为NULL时获取所属线程的消息
UINT wMsgFilterMin,//指定被检索的最小消息值的整数。
UINT wMsgFilterMax //指定被检索的最大消息值的整数
);
BOOL PeekMessage(
LPMSG IpMsg, //接收消息的线程ID
HWND hWnd, //取得消息的窗口句柄,为NULL时获取所属线程的消息
UINT wMSGfilterMin,//指定被检索的最小消息值的整数
UINT wMsgFilterMax,//指定被检索的最大消息值的整数
UINT wRemoveMsg
);
wRemoveMsg 可取下列值
PM_NOREMOVE PeekMessage处理后,消息不从队列里除掉。
PM_REMOVE PeekMessage处理后,消息从队列里除掉。
PM_NOYIELD 此标志使系统不释放等待调用程序空闲的线程。可将PM_NOYIELD随意组合到PM_NOREMOVE或PM_REMOVE