将消息放到消息队列里有几种方式?知道“茴”字有几个写法吗?记不起来了,去问孔乙己吧。(某人大吼一声:让我来告诉你)

         一、将消息放入线程的消息队列。

BOOL PostThreadMessage(DWORD idThread,UINT Msg,WPARAM wParam,LPARAM lParam);

         二、广播消息

long BroadcastSystemMessage(DWORD dwFlags,LPDWORD lpdwRecipients,UINT uiMessage,WPARAM wParam,LPARAM lParam);

//当然BroadcastSystemMessageEx函数也能达到同样的效果

         三、通知指定的窗口

BOOL PostMessage(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam);

LRESULT SendMessage(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam);

BOOL SendNotifyMessage(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam);

//它们可以在hWnd使用HWND_BROADCAST值,表示广播给当前桌面的顶层窗口

//另外仔细考虑一下他们有什么区别?

         四、有超时限制的消息通知

LRESULT SendMessageTimeout(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam,UINT fuFlags,UINT uTimeout,PDWORD_PTR lpdwResult);

         考虑一下,为什么Windows提供了这么多种相似的消息通知函数,他们各用在什么样的场合?答案在MSDN中都能找到只要你仔细看的话。

         如果你要仔细了解其他的消息对列处理函数的话,不妨仔细看看核心编程的26章。因为消息的内容实在是太多了,这是Windows系统用户界面交互的最重要的方式之一,一定要吃透才好哦。
posted on 2006-10-08 10:07 孤独的夜 阅读(538) 评论(0)  编辑 收藏 引用 所属分类: My VC Study
只有注册用户登录后才能发表评论。