现在的位置: 首页 > 综合 > 正文

按ESC关闭当前窗口

2013年12月19日 ⁄ 综合 ⁄ 共 533字 ⁄ 字号 评论关闭

在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;
        }

抱歉!评论已关闭.