windowsclient开发--使用、屏蔽一些快捷键

每一个windowsclient都有自己的一些快捷键,有的是windows系统提供的。

今天就要与大家分享一下。在windowsclient开发过程中对按键的处理。

ESC按键
Duilib这个库中,假设不做特殊处理的话。按下ESC会退出程序。

这不是我们期望的。我们能够在我们的client中屏蔽esc,而微信windowsclient是把ESC按键作为最小化到托盘处理。

我们也这样处理:

if (uMsg == WM_KEYDOWN ) {

        if (wParam == VK_ESCAPE)
        {
            ShowWindow(false);
            return 0;
        }

    }

Shift+Enter
在输入框中。回车通常是发送消息。而通常採用shift+enter的组合键来完毕换行。微信windowsclient也是这么做的:

else if (uMsg == WM_KEYDOWN ) {
        if (wParam == VK_RETURN)
        {
            if (::GetKeyState(VK_SHIFT) < 0) 
            {   
                //输入文本中增加\n
                return 0;
            }
            else 
            { 
                    //发送
                    return 0;               
            }
        }

    }

::GetKeyState(VK_SHIFT) > 0 没按下
::GetKeyState(VK_SHIFT) < 0被按下
返回值给出了给定虚拟键的状态,状态例如以下:
若高序位为1。则键处于DOWN状态。否则为UP状态。

posted @ 2017-08-03 11:19  mfmdaoyou  阅读(148)  评论(0编辑  收藏  举报