`
javasogo
  • 浏览: 1825778 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

三种方法实现快捷键编程

 
阅读更多
VC中至少有三种快捷键编程的方法,通常在SDI,MDI结构的程序中通过加入Acclelerator资源的消息响应,快速地实现快捷键功能;
除些之内,还有另两种方法.通常用在基于对话框的程序中.
1.
  1. #defineIsCTRLpressed()((GetKeyState(VK_CONTROL)&(1<<(sizeof(SHORT)*8-1)))!=0)//判断Ctrl键是否按下.
  2. BOOLCTDlg::PreTranslateMessage(MSG*pMsg)
  3. {
  4. if(pMsg->message==WM_KEYDOWN)
  5. {
  6. if(IsCTRLpressed())
  7. {
  8. switch(pMsg->wParam)
  9. {
  10. case'A'://ctrl+A键按下
  11. AfxMessageBox("youpressctrl+a");
  12. break;
  13. case'B'://ctrl+B键按下
  14. AfxMessageBox("youpressctrl+b");
  15. break;
  16. }
  17. }
  18. }
  19. returnCDialog::PreTranslateMessage(pMsg);
  20. }
.2.先添加Accelerator资源,比如:IDR_ACCELERATOR1,在其中添加要使用的快捷键资源:如
ID:IDR_CTRLTEST
Key:Ctrl + K
Type:VIRTKEY
  1. //TDlg.h
  2. HACCELm_hAcc;
  3. //TDlg.h
  4. BOOLCTDlg::OnInitDialog()
  5. {
  6. ....
  7. m_hAcc=LoadAccelerators(AfxGetApp()->m_hInstance,MAKEINTRESOURCE(IDR_ACCELERATOR1));
  8. }
  9. BOOLCTDlg::PreTranslateMessage(MSG*pMsg)
  10. {
  11. intiRet;
  12. switch(pMsg->message)
  13. {
  14. caseWM_KEYDOWN:
  15. caseWM_SYSKEYDOWN:
  16. iRet=TranslateAccelerator(m_hWnd,hAcc,pMsg);
  17. if(iRet)
  18. {
  19. returnTRUE;
  20. }
  21. }
  22. returnCDialog::PreTranslateMessage(pMsg);
  23. }
  24. 然后手工添加快捷资源的消息响应:
  25. 比如:
  26. //TDlg.h
  27. //{{AFX_MSG(CTDlg)
  28. afx_msgvoidOnTest();
  29. //}}AFX_MSG
  30. DECLARE_MESSAGE_MAP()
  31. //TDlg.cpp
  32. BEGIN_MESSAGE_MAP(CTDlg,CDialog)
  33. ON_COMMAND(IDR_CTRLTEST,OnTest)
  34. END_MESSAGE_MAP()
  35. voidCTDlg::OnTest()
  36. {
  37. AfxMessageBox("youpressctrl+k");
  38. }

分享到:
评论

相关推荐

    实现快捷键

    下面我们将详细讨论如何在程序中实现快捷键功能,以及相关的编程知识。 1. **定义快捷键** 快捷键通常是通过一个或多个键的组合来创建的,如Ctrl+S表示保存,Ctrl+C表示复制。在编程中,我们需要定义这些快捷键与...

    记事本(c#实现快捷键)

    在C#中,可以通过响应键盘事件来实现快捷键功能,比如Ctrl+C用于复制,Ctrl+V用于粘贴,Ctrl+S用于保存等。 ### 实现步骤 1. **创建项目**:首先,我们需要在Visual Studio中创建一个新的Windows Forms或WPF项目。...

    C#实现快捷键的几种常用方法汇总

    本文将详细阐述四种在C#中实现快捷键的方法,以帮助开发者为按钮(button)和其他控件添加快捷键功能。 1. **第一种方法:Alt + * (按钮快捷键)** 这种方法适用于像button、label、menuStrip这样的控件。只需在...

    Qt QTextEdit 实现快捷键注释功能

    本篇文章将详细探讨如何在QTextEdit中实现快捷键注释功能,以`Ctrl + /`为快捷键,以及通过点击按钮来实现代码注释的功能。 首先,我们需要了解QTextEdit的基本用法。QTextEdit继承自QAbstractScrollArea,它可以...

    java编程中得一些快捷键

    在Java编程中,掌握一些常用的快捷键能够极大地提高开发效率,减少无谓的手动输入时间。以下是一些在Java编程中常见的快捷键及其用途: 1. `main Alt+/`: 这个快捷键可以帮助你快速生成`main`函数的模板。在输入`...

    VS2010 编程工具 快捷键大全

    在编程世界中,效率是关键,而Visual Studio 2010(VS2010)作为一款强大的集成开发环境(IDE),拥有丰富的快捷键可以帮助开发者提升编程速度和效率。"VS2010 编程工具 快捷键大全" 提供了全面的快捷键列表,帮助...

    hook键盘操作实现快捷键结束进程

    总结起来,"hook键盘操作实现快捷键结束进程"是一种通过全局键盘hook监听用户输入,根据预设的快捷键组合执行特定操作(如结束进程)的技术。这一技术主要应用于解决全屏应用无法正常关闭的问题,但需谨慎使用,以...

    快速学会ICT在线测试仪编程 快捷键

    ### 快速学会ICT在线测试仪编程与快捷键:T2000F入门指南 #### 1. ICT在线测试仪基础知识与操作 ICT(In-Circuit Test)在线测试仪是一种用于电路板(PCB)制造过程中进行电气性能测试的设备,能够检测电路板上的...

    QT第三方库全局快捷键热键.zip

    QT第三方库全局快捷键热键...总的来说,qxtglobalshortcut5库为Qt开发者提供了一种有效的方式来实现全局快捷键,提高了应用的用户体验和交互性。通过熟练掌握这个库的使用,你可以创建更高效、更易于操控的跨平台应用。

    java编程快捷键整理集

    这是一个多功能快捷键,可以实现很多操作。 #### 2. 导航与定位 - **Ctrl+Q**:高亮显示当前光标所在单词的所有出现位置。这对于查找和修改某个变量或方法的使用非常方便。 - **Ctrl+L**:跳转到指定行。输入行号...

    java编程快捷键全集

    ### Java编程快捷键全集详解 #### 概述 在Java开发过程中,高效地使用IDE(集成开发环境)中的快捷键能够显著提升编程效率。本文将详细介绍一系列常用的Java编程快捷键,帮助开发者更加高效地编写代码。 #### 基础...

    macOS 全局快捷键实现.zip

    在macOS系统中,全局快捷键(Global Hotkeys)是一种高效的工作方式,它允许用户通过自定义的快捷键组合来触发各种操作,无论当前聚焦在哪个应用上。本开源项目"macOS 全局快捷键实现.zip"提供了一个名为"HotKey-...

    asp.net快捷键设置

    本文将详细介绍如何在ASP.NET环境中设置和使用快捷键,以便实现对控件的快速操作。 首先,了解快捷键的基本概念。快捷键是通过按下特定的键组合来执行某项操作的方式,通常包括一个或多个功能键(如F1至F12)、Ctrl...

    IDEA快捷键.docx

    33. **Ctrl+B**: 快速打开光标处的类或方法的定义,便于查看实现。 以上这些快捷键是IntelliJ IDEA中最常用的一些,熟练掌握它们可以显著提升开发效率,让编程工作更加流畅。通过不断地实践和记忆,你可以逐步形成...

    python实现制定快捷键输入的方法

    ### Python 实现定制快捷键输入方法详解 #### 知识点概述 本文将详细介绍如何使用Python编程语言来实现自定义的快捷键输入功能。通过该方法,用户可以通过按下特定的键盘组合来触发预设的文字输入或其他操作。这种...

    VC++对话框程序的键盘消息响应与快捷键的实现

    在VC++编程环境中,开发对话框程序时,我们经常需要处理键盘输入,特别是快捷键的实现,这可以增强用户交互性和程序效率。本教程将详细讲解如何在VC++对话框程序中实现键盘消息响应和快捷键功能。 首先,了解...

    react-一种简单且声明性的方法可以为您的React应用添加键盘快捷键

    `react-keyboardist`就是这样一款库,它提供了一种简单且声明性的方法,使得在React组件中集成键盘快捷键变得轻而易举。在这个教程中,我们将深入探讨如何使用`react-keyboardist`以及它能为你的React应用带来哪些...

    ReSharper常用快捷键

    - `F12`:导航到符号定义,可以深入查看函数或变量的实现。 2. **查找和替换** - `Ctrl+Shift+F`:在整个解决方案中进行查找,节省时间。 - `Ctrl+Shift+R`:全局替换,可以快速修改大量代码。 3. **重构** -...

    MFC快捷键关闭程序

    在编程领域,MFC(Microsoft Foundation Classes)是一个C++库,由微软开发,用于构建Windows应用程序。MFC封装了Windows API,提供了面向对象的接口,使得开发者能够更方便地进行Windows应用开发。在这个特定的问题...

    C#键盘钩子实现全局快捷键.pdf

    标题中提到的"C#键盘钩子实现全局快捷键",是指在C#编程中利用Windows钩子(Hook)机制来捕获和处理键盘事件,以此创建可以在系统范围内工作的快捷键。这种技术涉及到深入的系统底层交互,通常使用Win32 API来实现。...

Global site tag (gtag.js) - Google Analytics