
输入焦点即为windows导向系统中被动等待用户信息。
- 中文名 输入焦点
- 外文名 无
- 实质 以消息为导向的系统
- 领域 科技
输入来自焦点
Windows是一个以消息为导向的系统,应用程序只能被动地等待用户按键的消息,不能主动地去读键盘的状态,也就是说,每当键盘上有个键被按下,系统就会发出一个按键消息给窗口,告诉它某个键被按下去了,只要鼠标移动一下,系统也会发出相应的消息,并把鼠标的坐标信息传给窗口块统乙内生。
Windows360百科可以同时执行许多程看争反门苏独鸡术合序,但键盘只有一个,怎么判断由哪个窗口接收键盘及鼠标的消息呢?采用"输入焦点"(input focus)技术可以解决这个问题。只要某个窗口取得输院记两料食入焦点,它不但会被提升到屏幕的最前面,颜色也会有所不同,所有的键盘消只城又按守乎眼然政息就会导向该窗口,该窗口也成为"活动窗口"。
窗口如何取得输入焦点?通常被鼠标单击的窗口会得到输入焦点,除此之外,程序本身也可以利用SetFocus()来指定有京线达编日流哪个窗口拥有输入育食被意月焦点。
CWnd* CWnd::SetFocus();
如果调用某窗口的SetFo强接报cus()成员函数,该窗口就可以取得输入焦点,该函数返回前一个拥有输入焦点的窗口。
如果某个窗口的输入焦点被抢走,Windows系统就会发出WM_KILLFOCUS消息给写每送沉降教几易器毛缩这个失去输入焦点的窗口,同时还会告诉该窗口下一个取得输入焦点的窗口的指针。卷错间而获得输入焦点的窗口则会收到WM_SETFOCUS消息。
消息响应兰口抓跳根愿架束函数分别为:
afx_msg void OnKillFocus(CWnd* pNewWnd);
其中的参数为得到输入焦点的窗口的指针。
Afx_msg void OnSetFocus(CWnd* pOldWnd);
其中的参数为失去输入焦点的窗口的指针。