在WinForm中经常会需要实现这样的功能:按ESC关闭当前窗口,或者按不同的键,实现不同的功能。
下文以实现按ESC关闭当前窗口为例:
protected override bool ProcessCmdKey(ref Message msg, Keys keyData){/*C:\Program Files\Microsoft SDKs\Windows\v7.0A\Include\WinUser.h中定义:#define WM_KEYFIRST 0x0100#define WM_KEYDOWN 0x0100#define WM_KEYUP 0x0101#define WM_CHAR 0x0102#define WM_DEADCHAR 0x0103#define WM_SYSKEYDOWN 0x0104#define WM_SYSKEYUP 0x0105#define WM_SYSCHAR 0x0106#define WM_SYSDEADCHAR 0x0107*/if (msg.Msg == 0x100 || msg.Msg == 0x104) // WM_KEYDOWN, WM_SYSKEYDOWN{if(keyData == Keys.Escape){this.Close(); // Esc关闭窗体}}return false;}