1、启动时,从配置文件中读取上次保存的方向键键值,并将这些配置显示到窗口中

(1)从配置文件中读取方向键,并将其显示到窗口:

iCfgValue = GetPrivateProfileInt(_T("AppChoice"),_T("iCommandU"),0,filePath);//从配置文件中读取方向键的值
if (!_IsDirectionKey(iCfgValue,m_csStyleUp))//判断该键值是否为方向键m_csStyleUp.Format(_T("%c"),iCfgValue);
SetDlgItemText(IDC_EDT_UP,m_csStyleUp);//将键值显示到窗口

(2)判断键值是否为方向键的函数:

_IsDirectionKey(int iKeyValue, CString& sDirectionValue)
{if(VK_UP== iKeyValue){sDirectionValue = UP_DIRECTION_KEY_TYPE;return true;}if( VK_DOWN== iKeyValue){sDirectionValue = DOWN_DIRECTION_KEY_TYPE;return true;}if( VK_LEFT== iKeyValue){sDirectionValue = LEFT_DIRECTION_KEY_TYPE;return true;}if( VK_RIGHT== iKeyValue){sDirectionValue = RIGHT_DIRECTION_KEY_TYPE;return true;}return false;
}

上述宏为自定义,如下所示:

const CString UP_DIRECTION_KEY_TYPE = _T("上");
const CString DOWN_DIRECTION_KEY_TYPE = _T("下");
const CString LEFT_DIRECTION_KEY_TYPE = _T("左");
const CString RIGHT_DIRECTION_KEY_TYPE = _T("右");

2、通过MFC窗口获取方向键,并保存方向键的键值,

(1)添加override函数PreTranslateMessage,并在该函数中响应用户实际输入的键值:

BOOL CDebugerDlg::PreTranslateMessage(MSG* pMsg)
{// TODO: Add your specialized code here and/or call the base classif (WM_KEYDOWN == pMsg->message){CWnd* pw = CWnd::GetFocus();if ((GetDlgItem(IDC_EDT_UP) == pw)&&(VK_UP==pMsg->wParam)){m_csStyleUp.Format(_T("%c"),VK_UP);SetDlgItemText(IDC_EDT_UP,UP_DIRECTION_KEY_TYPE);}if ((GetDlgItem(IDC_EDT_DOWN) == pw)&&(VK_DOWN==pMsg->wParam)){m_csStyleDown.Format(_T("%c"),VK_DOWN);SetDlgItemText(IDC_EDT_DOWN,DOWN_DIRECTION_KEY_TYPE);}if ((GetDlgItem(IDC_EDT_LEFT) == pw)&&(VK_LEFT==pMsg->wParam)){m_csStyLeft.Format(_T("%c"),VK_LEFT);SetDlgItemText(IDC_EDT_LEFT,LEFT_DIRECTION_KEY_TYPE);}if ((GetDlgItem(IDC_EDT_RIGHT) == pw)&&(VK_RIGHT==pMsg->wParam)){m_csStyRight.Format(_T("%c"),VK_RIGHT);SetDlgItemText(IDC_EDT_RIGHT,RIGHT_DIRECTION_KEY_TYPE);}}return CDialog::PreTranslateMessage(pMsg);
}

如果用户输入了向上的方向键,则在对应的EDIT控件中显示“上”

通过MFC窗口获取方向键相关推荐

  1. vs2010+cef3的90.6.0版实现把cef3嵌入到mfc窗口

    vs2010+cef3的90.6.0版实现把cef3嵌入到mfc窗口 初衷 开始动手 界面 部分说明 cef3配置的简单化 补充下cef3的libcef_dll_wrapper.lib获取 补充下si ...

  2. opencv在mfc窗口显示图片

    mfc显示mat图片的两种方式 方式一:将opencv的窗口嵌入到mfc的窗口内 将opencv窗口与mfc窗口绑定之后就可以通过cv::imshow("video",img)显示 ...

  3. 去除MFC窗口的自动记忆功能

    参考链接:如何去除MFC窗口的自动记忆功能 程序开始函数:CmyApp::InitInstance 程序结束函数:CmyApp::ExitInstance 加入代码: BOOL CmyApp::Ini ...

  4. MFC中获取App,MainFrame,Doc和View类等指针的方法

    From: http://hi.baidu.com/wxnxs/item/156a68f5b3b4ed18e3e3bd03 MFC中获取App,MainFrame,Doc和View类等指针的方法 1  ...

  5. 解决MFC 窗口创建时 争夺焦点的问题

    解决MFC 窗口创建时 争夺焦点的问题 参考文章: (1)解决MFC 窗口创建时 争夺焦点的问题 (2)https://www.cnblogs.com/h2052519/p/6377635.html ...

  6. 使用visual studio 2019 创建简单的MFC窗口「使用C++」

    ```cpp 使用visual studio 2019 创建过程请参考Bili的上一篇文章⬇⬇ →!使用visual studio 2019 创建简单的MFC窗口「使用底层的C语言」 划重点:项目-& ...

  7. MFC窗口的GetDC()/ReleaseDC()有bug会造成内存泄露

    MFC窗口的GetDC()/ReleaseDC()有bug会造成内存泄露,解决办法:使用win32的对应接口::GetDC()/::ReleaseDC().

  8. 解决OBS窗口获取chrome窗口黑屏的方法

    解决OBS窗口获取chrome窗口黑屏的方法 在使用obs时可以捕获到音乐播放器窗口(如:kugou)及文件夹窗口等,但是无法捕获谷歌浏览器的窗口,导致没有办法录制浏览器中播放的视频. 主要原因是ob ...

  9. MFC窗口位置和大小的获取

    最近在做一个项目,需要控件随对话框大小的变化而变化,因此需要准确获取对话框窗口.控件的大小和位置. 经过好一番查寻.测试,终于看到了希望.下面是一些获取窗口位置和大小的函数,示例如下: 1.获取屏幕分 ...

最新文章

  1. cocos2dx 3.3创建新项目 和 VS2012解决方案加载失败问题
  2. Scrapy基本用法
  3. linux——samba共享以及基础用法
  4. 温州大学《深度学习》课程课件(三、浅层神经网络)
  5. 全渠道java b2b b2c o2o平台
  6. Helios Service Release 2安装SVN
  7. 修改ip和计算机名,批量设置IP地址和计算机名
  8. 有个疑问,想知道你们的前端都是自学吗?
  9. 奈飞文化手册_《奈飞文化手册》速阅提炼分享3
  10. 【论文】哈工大SCIR Lab | EMNLP 2019 基于BERT的跨语言上下文相关词向量在零样本依存分析中的应用...
  11. 给WP7初学者:《WP7 Dev Quick Start系列视频》
  12. Mybatis的xml映射文件,sql的模糊查询的实现(两种方式)占位符拼接,concat关键字
  13. Java冒泡排序法 降序
  14. win10系统怎么进行远程控制操作
  15. 如何用工具自动修复数字IC后端设计实现绕线后的Physical DRC_
  16. python聊天智能回复_【微信】设置自动回复消息和智能聊天
  17. 空中夺命“杀手锏”!以色列研发致命性无人机,让人毛骨悚然
  18. 2018 ACM ICPC Arabella Collegiate Programming Contest A
  19. 潦草手写体也能轻松识别,快速提取文字不用愁
  20. c++中按位取反运算

热门文章

  1. MySQL生产常用SQL语句汇总
  2. es6删除数组某项_es6删除数组元素或者对象元素的方法介绍(代码)
  3. python表达式3and not5的值_表达式 3 and 5 的值为_学小易找答案
  4. python连乘函数_Python常用的几种常用的内置函数
  5. java etcd api_在java中如何使用etcd的v2 和v3 api获取配置,并且对配置的变化进行监控和监听...
  6. 光电编码器的原理及应用场合_图解编码器应用,推荐收藏
  7. 8s pod 查看 的yaml_k8s之深入解剖Pod(三)
  8. Python数据分析:pandas玩转Excel(一)
  9. android+studio2.1+是否不支持感染到了.0,Android studio 2.2.3 升级到2.3遇到的问题
  10. php redius,Linux下Redius的安装与部署详解