公司一个大型的项目中使用了 DELPHI 来开发 OCX 控件做数据库的管理,但是GIS图形系统使用 MFC 开发,最后将 OCX 嵌入到 MFC 程序中作为一个完整的系统交付用户使用,但是在使用过程中发现一个问题:当启动 DELPHI 开发的管理程序使用 OCX 时, "剪贴、复制、黏贴"的快捷键都是好使的,但是当 MFC 程序加载 OCX 后,OCX 中的文本框只能使用右键菜单来完成这些事情,使用快捷键毫无反应(当然对于 MFC 中的文本框是好使,即使没有设置加速键表),几经尝试,最终灵光一闪突然想到了一个简单的方法,经过测试该问题已经解决,代码如下;

BOOL CAppEntry::PreTranslateMessage(MSG* pMsg)
{
    int Key = pMsg->wParam ; UINT Msg = pMsg->message ;
    if( Msg == WM_KEYDOWN && ::GetFocus( ) && ::GetAsyncKeyState( VK_CONTROL ) )
    {
        if( Key == 'Z' ){ ::SendMessage( ::GetFocus( ) , WM_UNDO , 0 , 0 ); return TRUE; }
        if( Key == 'X' ){ ::SendMessage( ::GetFocus( ) , WM_CUT  , 0 , 0 ); return TRUE; }
        if( Key == 'C' ){ ::SendMessage( ::GetFocus( ) , WM_COPY , 0 , 0 ); return TRUE; }
        if( Key == 'V' ){ ::SendMessage( ::GetFocus( ) , WM_PASTE, 0 , 0 ); return TRUE; }
    }

return CWinApp::PreTranslateMessage(pMsg);
}

需要注意的是:在 WM_KEYDOWN 消息中的字符都是大写的,小写字母是在 WM_CHAR 中结合 CAPS LOCK 和 SHIFT 按键的状态转换出来的,所以上面代码中的按键判断只需要判断大写字母即可(实际情况中小写字母是不会进来的)

转载于:https://www.cnblogs.com/WonKerr/archive/2009/09/11/MFC_OCX_SHORTCUT.html

DELPHI 开发的 OCX 控件在 MFC 程序中编辑框快捷键不好使的解决相关推荐

  1. activex 控件的id 定义位置+使用ocx控件的客户端程序中对控件定义的文件中控件id定义的位置...

    activex 控件的id 定义位置 // SuperDisplayCtl.cpp IMPLEMENT_OLECREATE_EX(CSuperDisplayCtrl, "SuperDispl ...

  2. 关于js调用ocx控件报错对象不支持此属性或方法的解决方法

    在web中用js调用ocx时有两种方法,第一种,动态调用: 1,用名称调用,var ocx=new ActiveXObject("JITDSIGN.JITDSignCtrl.1") ...

  3. 微信小游戏游戏显示html控件,微信小程序中如何渲染html内容(代码示例)

    我们的小程序是基于「WePY」框架开发的,而「wxParse」是基于原生的小程序编写的.要想让两者兼容,必须修改「wxParse」的源代码. 「wxParse」只是简单地通过image组件对原img元 ...

  4. C#调用第三方ocx控件 (winform /aspx)

    C#调用第三方ocx控件 1..net环境在工具箱上点右键,选择自定义工具箱,然后选择你需要的COM或者OCX控件就可以了. 2.在自定义工具箱中加入相应的控件,设置id,在客户端脚本中直接引用它的I ...

  5. win10注册ocx控件的步骤(包含错误处理方法0x80040200)

    最近在测试一个加载ocx控件的C++程序,运行前要先注册ocx控件. 1.用运行命令提示符或者PowerShell. 2.利用命令进入到ocx文件所在的目录下输入注册命令 注册命令:regsvr32 ...

  6. WPF应用ocx控件

    前言 最近项目中需要集成电话控制功能.设计到一个USB电话录音盒的二次开发.硬件提供商提供了ocx控件.项目为C/S架构系统,客户端使用了WPF技术.所以本文重点分析,在WPF中如何引用第三方提供的o ...

  7. ocx js php,JS实现OCX控件的事件响应示例_javascript技巧

    JS支持OCX控件的事件(event),当OCX控件定义的事件发生时,JS可以捕获该事件并对事件进行相应的处理. 个人理解,其实就是事件的响应由谁来完成,OCX控件自身肯定是可以实现的,JS提供的这种 ...

  8. 在VC中如何使用OCX控件 【来源:http://blog.csdn.net/wulang1114/article/details/4806089】

    首先感谢网络中的各位高手,我的文章只是对你们文章的Copy和学习. 工作中客户提供了一个ocx控件,学习了如何使用它.发现网上没用针对像我一样菜鸟的文章,所以我总结一下我的学习成果供菜鸟学习使用. 1 ...

  9. VB制作OCX控件的步骤

    下面列出制作OCX控件的步骤: 一:新建OCX 打开VB 选择新建工程在对话框中选择ActiveX 控件(如图一(map1.gif))打开后会见一空的文档这就是 OCX控件的初始界面.想看一看空OCX ...

最新文章

  1. linux 文件搜索
  2. 集合视图UICollectionView 介绍及其示例程序
  3. 熬夜所带来的伤害,远比我们想象的更可怕
  4. 今天的解放过后的蜡笔小新
  5. 安全测试3_Web后端知识学习
  6. dj鲜生-03-用户模块的创建与模型类的创建
  7. Java的新项目学成在线笔记-day7(一)
  8. startService和onBinderService混合开发音乐播放器
  9. 使用FFMpeg进行H264编码
  10. 实现中文下的UITableView Index
  11. Unity3D基础42:AnyState大法
  12. 广东计算机考试1级时间安排,1级计算机考试时间
  13. 浅谈Http协议、TCP协议
  14. Word给自动生成的目录页码添加括号
  15. @DateTimeFormat 和 @JsonFormat 注解详解
  16. IDEA 2021首个大版本发布,羊哥反手就是一个更新!附新亮点演示!
  17. WIN10共享打印机报错解决方法
  18. Flash与服务器通信简介
  19. windows RT开发笔记:WinRT DLL及其调用研究
  20. 易语言编写的WIfi热点共享工具 源码+成品

热门文章

  1. PHP Deprecated: Function ereg_replace() is deprecated in 的解决方法
  2. 《剑指offer》调整数组顺序使奇数位于偶数前面
  3. 【solr基础教程之九】客户端
  4. 查找数组中最大的2个数
  5. TransmittableThreadLocal
  6. Elasticsearch 实现自定义排序插件
  7. 【算法导论】归并排序
  8. hive脚本执行方式
  9. JMP Discovery Summit数据分析峰会登陆中国
  10. java-基础-ArrayList剖析