如果是WM_ACTIVATE消息,先交给_AfxHandleActivate处理,再继续下面的处理。 如果是WM_SETCURSOR消息,先交给_AfxHandleSetCursor处理,然后返回。 如果是其他的窗口消息(包括WM_ACTIVATE消息),则 首先在消息缓冲池(一个hash表,用于加快消息处理函数的查找)进行消息匹配, 若匹配成功,则调用相应的消息处理函数; 若不成功,则...
如果是WM_ACTIVATE消息,先交给_AfxHandleActivate处理(后面5.3.3.7节会解释它的处理),再继续下面的处理。 如果是WM_SETCURSOR消息,先交给_AfxHandleSetCursor处理;然后返回。 如果是其他的Windows消息(包括WM_ACTIVATE),则首先在消息缓冲池进行消息匹配,若匹配成功,则调用相应的消息处理函数;若不成功,则在消息目标的消息...
WM_ENDSESSION = $0016 //当系统进程发出WM_QUERYENDSESSION消息后,此消息发送给应用程序,通知它对话是否结束 WM_SYSTEMERROR = $0017 // WM_SHOWWINDOW= $0018 //当隐藏或显示窗口是发送此消息给这个窗口 WM_ACTIVATEAPP = $001C //发此消息给应用程序哪个窗口是激活的,哪个是非激活的; WM_FONTCHANGE= $00...
其中,WM_PAINT,WM_TIMER只有在队列中没有其他消息的时候才会被处理, WM_PAINT消息还会被合并以提高效率。其他所有消息以先进先出(FIFO)的方式被处理。 (2) 非队列消息(NonQueued Messages) 消息会绕过系统消息队列和线程消息队列,直接发送到窗口过程进行处理 如:WM_ACTIVATE, WM_SETFOCUS, WM_SETCURSOR,WM_WINDOW...
PSWIZB_DISABLEDFINISH中的一个或者几个,分别用来设置该页上的一个“上一步”按钮、“下一步”按钮、“完成”按钮、和一个禁用的“完成”按钮,一般来说在属性页中的OnSetActive函数中调用,当属性页被选中,从而被激活时程序会响应WM_ACTIVATE,而该消息在函数OnSetActive中处理,由于在基类中有了这个函数,所以我们需要...
WM_MOVE 移动一个窗口 WM_SIZE 改变一个窗口的大小 WM_ACTIVATE 一个窗口被激活或失去激活状态 WM_SETFOCUS 一个窗口获得焦点 WM_KILLFOCUS 一个窗口失去焦点 WM_ENABLE 一个窗口改变成Enable状态 WM_SETREDRAW 设置窗口是否能重画 WM_SETTEXT 应用程序发送此消息来设置一个窗口的文本 ...
PSWIZB_DISABLEDFINISH中的一个或者几个,分别用来设置该页上的一个“上一步”按钮、“下一步”按钮、“完成”按钮、和一个禁用的“完成”按钮,一般来说在属性页中的OnSetActive函数中调用,当属性页被选中,从而被激活时程序会响应WM_ACTIVATE,而该消息在函数OnSetActive中处理,由于在基类中有了这个函数,所以我们需要...
WM_ACTIVATETOPLEVEL,在其 “top-level 组中”激活一个窗口或停用时,此信息发送到顶级窗口。 窗口是顶级组的一部分,如果它是顶级窗口 (没有父或所有者),也由此类窗口拥有。 此消息是类似正在使用对 WM_ACTIVATEAPP, ,但在属于不同的窗口操作的情况下工作在一个窗口层次结构组合 (常见在 OLE 应用程序)。
WM_ACTIVATETOPLEVEL 当顶级窗口的“顶级组”中的窗口被激活或停用时,此消息将发送到该顶级窗口。 如果窗口是顶级窗口(没有父级或所有者),或者它属于此类窗口,则该窗口是顶级组的一部分。 此消息与 WM_ACTIVATEAPP 类似,但适合这样的情况:单个窗口层次结构中同时具有属于不同进程的窗口(这在 OLE 应用程序中很常...
= NULL && OnNotify(wParam, lParam, &lResult)) goto LReturnTrue; return FALSE; } // special case for activation if (message == WM_ACTIVATE) _AfxHandleActivate(this, wParam, CWnd::FromHandle((HWND)lParam)); // special case for set cursor HTERROR if (message == WM_SETCURSOR && _Afx...