每一个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状态。

最新文章

  1. js计时器
  2. const 和 readonly 修饰符的用法
  3. Hibernate中的脏检查和缓存清理机制
  4. windows下游戏服务器端框架Firefly安装说明及demo运行
  5. Headfirst设计模式的C++实现——状态模式(State)
  6. 理解Http协议(一)
  7. SQLite 对中文路径的支持(用到了StringToWideChar和Utf8Encode在D7的System单元中自带)
  8. 基于nginx的rtmp的服务器(nginx-rtmp-module)
  9. ORA-07445: :一个意料之外的问题发生了 核心转储 [ldxsnf()+625] [SIGSEGV
  10. 用Bash脚本将Linux普通用户添加为系统管理员
  11. Atom的追踪函数插件和自定义语法
  12. Android CheckBox修改大小、边框颜色,以及自定义CheckBox;
  13. C#实现局部峰值查找,功能对应Matlab中的findpeaks.m(转)
  14. 给OkHttp Client添加socks代理
  15. 【JVM.8】类加载及执行子系统的案例与实战
  16. 【JSP】EL函数和自定义EL函数
  17. 1.Spring——七大主要模块
  18. WCF-绑定模型(一)
  19. 一:Ionic Framework初体验
  20. 第二次Surm冲刺

热门文章

  1. Javacore分析(转载)
  2. 【bzoj2086】Blocks
  3. 点击回到之前页面,并不刷新js histroy
  4. python的property的用法
  5. Windows+Ubuntu双系统如何设置Windows为第一启动项
  6. 如果想从jenkins直接生成docker镜像,并推送到harbor中,最简单的脚本如何实现?
  7. zabbix监控web应用
  8. 洛谷——P3913 车的攻击
  9. [BZOJ4337][BJOI2015]树的同构(树的最小表示法)
  10. POJ 1113 Wall(凸包)