Windows 窗体应用程序中的用户输入

在 Windows 窗体中,用户输入以 Windows 消息的形式发送到应用程序。 一系列可重写的方法在应用程序、窗体和控件级别处理这些消息。 当这些方法收到鼠标和键盘消息时,它们会引发可处理的事件以获取有关鼠标或键盘输入的信息。 在许多情况下,Windows 窗体应用程序只需通过处理这些事件即可处理所有用户输入。 在其他情况下,应用程序可能需要重写处理消息的方法之一,以便在应用程序、窗体或控件接收特定消息之前截获该消息。

鼠标和键盘事件

所有 Windows 窗体控件都将继承与鼠标和键盘输入相关的一组事件。 例如,控件可以处理 KeyPress 事件以确定所按下的键的字符代码,或者,控件可以处理 MouseClick 事件以确定鼠标单击的位置。 有关鼠标和键盘事件的详细信息,请参阅使用键盘事件Windows 窗体中的鼠标事件

处理用户输入消息的方法

窗体和控件可以访问 IMessageFilter 接口和一组可重写的方法,这些方法可在消息队列中的不同位置处理 Windows 消息。 这些方法都有 Message 参数,该参数用于封装 Windows 消息的低级别详细信息。 可以实现或重写这些方法来检查消息,然后使用此消息或将其传递给消息队列中的下一个使用者。 下表显示用于处理 Windows 窗体中所有 Windows 消息的方法。

方法 说明
PreFilterMessage 此方法在应用程序级别截获排队的(也称为已发布的)Windows 消息。
PreProcessMessage 此方法在 Windows 消息经过处理之前,在窗体和控件级别截获这些消息。
WndProc 此方法在窗体和控件级别处理 Windows 消息。
DefWndProc 此方法在窗体和控件级别执行 Windows 消息的默认处理。 这提供了窗口的最小功能。
OnNotifyMessage 此方法在消息经过处理之后,在窗体和控件级别截获这些消息。 必须设置 EnableNotifyMessage 样式位才能调用此方法。

键盘和鼠标消息也由其他一组特定于这些类型消息的可重写方法进行处理。 有关详细信息,请参阅键盘输入的工作原理鼠标输入在 Windows 窗体中的工作原理

另请参阅