1. SendMessage和PostMessage;
PostMessage是将消息发给窗口所属的线程的消息队列,并立即返回。
SendMessage将消息发送出去后,直到处理完毕,返回。MSDN中的解释是会调用特定的窗口函数,比如,获取ListBox中当前选中的项,肯定需要通过ListBox的窗口函数来处理。疑问是,它还会通过队列吗?
2. BN_CLICK和BN_CLICKED;WM_LBUTTONUP和WM_LBUTTONDOWN
从硬件出来的信息只有WM_KEYDOWN、WM_KEYUP、WM_LBUTTONUP、WM_LBUTTONDOWN等消息。Button这类控件处理这类信息并产生WM_CLICKED消息,这类信息以WM_COMMAND的形式发送出来。Button控件也给应用程序提供了模拟按键的接口,通过发送WM_CLICK消息给Button控件,Button控件接收后,发送WM_CLICKED给其父窗口处理。
3. BN_GETCHECK和BN_SETCHECK;
应用程序发送消息BN_GETCHECK来获取radio button或者check box的状态。
应用程序发送消息BN_SETCHECK来设置radio button或者check box的状态。
4. BN_SETFOCUS和BN_KILLFOCUS;
当button获取或者失去focus时,Button发送该消息。