如何在ActiveForm中正确响应KeyDown事件(在C++Builder中)

cooldoghuang 2002-06-28 06:29:05
不知大家有没有遇到这样的问题,在C++Builder5中开发的ActiveForm,在运行时,对于一些特殊的按键不能正确响应,如退格键,方向键.原因佷明显: 这些键属于IE的热键,IE先截获了这些键,作为它控制之用.所以ActiveForm上的编辑控件就不能正确响应了.现在的难题是,如何不让IE处理这些键?
这个问题比较特殊,因为用VB,Dehphi5开发的ActiveForm均不会出现这样的情况,只有在C++Builder中才有.我到Borland的官方网站查了一下,发现这个问题早在1999年C++Buildr4中就已经有了,尔Borland似乎也没有佷好的解决(网站上给出了一个方法,但好象不太好使).
这个问题已经困绕了我好长时间,想了N多方法,消耗了N多脑细胞,一直无法解决,希望C++Builder的高手们能帮帮忙,小弟在这先谢过了!!
...全文
165 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
cpufall 2002-08-02
  • 打赏
  • 举报
回复
请问dongfire(断剑):
我现在做了一个ActiveX控件,使用ATL方式(有MFC支持),上面有一个Edit控件。
我现在想在Edit上输入字符后直接按回车执行某个函数,但却只能得到字符,得不到回车,请问你是如何使用PreTranslate解决此问题的,谢谢!
cooldoghuang 2002-08-01
  • 打赏
  • 举报
回复
to dongfire:
用VC写控件,高手啊!不过VC我不太懂,你说的"PreTranslate",应该类似于窗口的消息处理函数吧。
我的问题和你的可能不同,我是在IE中嵌入ActiveForm,IE先截获了发给ActiveForm的键盘消息,进行了预处理,造成了ActiveForm上的控件不能正确相应一些特殊键。用键盘钩子或者窗口子类化,可以在IE之前截获这些消息,但是有许多细节问题无法解决。现在找到了一个变通的方法可以部分解决此问题:在网页中相应document的Keydown事件,然后对这些特殊键进行处理。但是也只能部分解决。
不知你是否还能关注此问题?希望能继续和你交流。
dongfire 2002-07-26
  • 打赏
  • 举报
回复
我最近在用Vc写控件,在控件中包容了一个ActiveX control,出现了类似的问题。我的解决方法是在PreTranslate里处理发给ActiveX control的键盘消息,不知对你有没有启发。
daehappy 2002-07-07
  • 打赏
  • 举报
回复
up!gz!
cooldoghuang 2002-07-01
  • 打赏
  • 举报
回复
why? why??
为什么没人回答?????
cooldoghuang 2002-06-28
  • 打赏
  • 举报
回复
望高手们不令赐教!
本书具有下面的一些特色: (1) 例程精练、实用、完整,易于查找本书的例程丰富,短小精练。在每章的前面部分,以一定的篇幅对基本理论、知识要点等进行论述;然后以经典的例程加以说明;最后对例程进行分析和总结。书的例程完整,并全部按照章号进行了编号。在随书的光盘有这些例程的源代码和编译、链接后的可执行文件。读者可以使用随书光盘的“复制”程序(可执行文件为D5Samples.exe)将例程复制到硬盘的指定位置,也可以通过资源管理器进行复制。另外,对于每个例程都指定了若乾个关键字,可以根据关键字查找相关知识点的例程。 (2) 编程技巧丰富作者将自己在开发程序过程总结、收集的经验和教训、一些读者在编程过程遇到的问题等融合在本书,并且将这些编程技巧尽量独立,便于读者快速查找。 (3) 内容广泛,兼容性强本书几乎涉及了C++Builder编程的所有领域,不仅适用于C++Builder 5,而且也适用于C++Builder 4和C++Builder 3等以前的版本。 (4) 体现了面向对象的技术和软件工程化的思想本书从总体上体现了面向对象程序设计的方法,同时将软件工程化的思想融于其。 内容编排本书主要分为下面的六个部分: 第一部分 C++Builder编程基础 C++ Builder编程基础包括:C++Builder集成开发环境的介绍和C++语言的关键技术。 第二部分 C++Builder编程通用技术 C++ Builder编程核心技能包括:窗体和组件、菜单、工具栏和状态栏、键盘和鼠标、文件、目录和驱动器以及打印等。 第三部分 C++Builder高级编程技术 C++Builder 高级编程技术包括:数据共享、操作注册表、帮助系统的制作、安装与卸载、多线程应用程序、动态链接库和图形与多媒体等技术。 第四部分 数据库编程数据库编程部分包括:关系数据库、数据库组件、InterBase服务器、OLE DB/ADO和Web与数据库等。 第五部分 组件对象模型(COM) 组件对象模型(COM)包括:COM和OLE自动化等内容。 第六部分 分布式程序设计分布式程序设计包括:DCOM、MIDAS、ActiveForm、CORBA与分布式应用程序,以及其他的一些编程方法与技巧。 阅读建议: 对于C++Builder的初学者,可以按顺序进行阅读。如果读者对C++语言有一定的了解,也可以直接从第二部分开始,待使用C++Builder编程有了一定的经验后,再回过头来看看第一部分的内容。对于C++Builder级用户,可以按章节顺序阅读、上机,也可以直接挑选感兴趣的章节学习。值得注意的是,第一部分的内容对使用C++语言进行软件开发非常有用,一定要掌握好。对于C++Builder的高级用户,可以直接挑选感兴趣的章节阅读。
本书特色 本书具有下面的一些特色: (1) 例程精练、实用、完整,易于查找本书的例程丰富,短小精练。在每章的前面部分,以一定的篇幅对基本理论、知识要点等进行论述;然后以经典的例程加以说明;最后对例程进行分析和总结。书的例程完整,并全部按照章号进行了编号。在随书的光盘有这些例程的源代码和编译、链接后的可执行文件。读者可以使用随书光盘的“复制”程序(可执行文件为D5Samples.exe)将例程复制到硬盘的指定位置,也可以通过资源管理器进行复制。另外,对于每个例程都指定了若乾个关键字,可以根据关键字查找相关知识点的例程。 (2) 编程技巧丰富作者将自己在开发程序过程总结、收集的经验和教训、一些读者在编程过程遇到的问题等融合在本书,并且将这些编程技巧尽量独立,便于读者快速查找。 (3) 内容广泛,兼容性强本书几乎涉及了C++Builder编程的所有领域,不仅适用于C++Builder 5,而且也适用于C++Builder 4和C++Builder 3等以前的版本。 (4) 体现了面向对象的技术和软件工程化的思想本书从总体上体现了面向对象程序设计的方法,同时将软件工程化的思想融于其。 内容编排本书主要分为下面的六个部分: 第一部分 C++Builder编程基础 C++ Builder编程基础包括:C++Builder集成开发环境的介绍和C++语言的关键技术。 第二部分 C++Builder编程通用技术 C++ Builder编程核心技能包括:窗体和组件、菜单、工具栏和状态栏、键盘和鼠标、文件、目录和驱动器以及打印等。 第三部分 C++Builder高级编程技术 C++Builder 高级编程技术包括:数据共享、操作注册表、帮助系统的制作、安装与卸载、多线程应用程序、动态链接库和图形与多媒体等技术。 第四部分 数据库编程数据库编程部分包括:关系数据库、数据库组件、InterBase服务器、OLE DB/ADO和Web与数据库等。 第五部分 组件对象模型(COM) 组件对象模型(COM)包括:COM和OLE自动化等内容。 第六部分 分布式程序设计分布式程序设计包括:DCOM、MIDAS、ActiveForm、CORBA与分布式应用程序,以及其他的一些编程方法与技巧。 阅读建议: 对于C++Builder的初学者,可以按顺序进行阅读。如果读者对C++语言有一定的了解,也可以直接从第二部分开始,待使用C++Builder编程有了一定的经验后,再回过头来看看第一部分的内容。对于C++Builder级用户,可以按章节顺序阅读、上机,也可以直接挑选感兴趣的章节学习。值得注意的是,第一部分的内容对使用C++语言进行软件开发非常有用,一定要掌握好。对于C++Builder的高级用户,可以直接挑选感兴趣的章节阅读。

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧