找回密码
 注册
Simdroid-非首页
查看: 278|回复: 1

[讨论]传给activex控件event handler之参数

[复制链接]
发表于 2005-3-19 13:52:42 | 显示全部楼层 |阅读模式 来自 陕西西安
这几天通过对activex控件的调式,总结出如下内容:

传给activex控件event handler之参数

传给activex控件event handler的参数为:
varargin{1}:object handle(com,progid)
varargin{2}:event id
varargin{3}:event args
varargin{4}:event name

object handle指向被监听activex控件

event id有:
-600:  Single Click
-601:  Double Click
-602:  KeyPress
-603:  CharPress
-604:  KeyRelease
-605:  Mousedown
-606:  MouseMove,事实上没有任何事件发生时,监听器以id=-606不断调用handler
-607:  MouseUp

当接受字符键盘输入时(event id=-602,-603,-604),字符信息在event name中,此时event args为字符ascii码,
可以接受SHIFT+character
可以接受Ctrl+character, ascii码规律如:
Ctrl+A: 1 ,CtrL+B: 2, CtrL+C: 3

非字符键盘输入(event id=-602,-604),键的信息位于event args,常用键的event args值为:
shift: 16
ctrl: 17
F1: 112
F2: 113
Up: 38
Left: 37
Right: 39
Down 40
-------------------------------------------------------------------

附上调试时用的一些代码:

function test_eventhandler
ID='MSFlexGridLib.MSFlexGrid';
fi=figure('NumberTitle','off','toolbar','none','menubar','none','Name','Test Activex','pos',[159 150 550 250]);
h = actxcontrol(ID,[0 0 550,250],fi,@gridhandler);

function gridhandler(varargin)
%varargin{1}:object (com,progid)
%varargin{2}:event id
%varargin{3}:event args
%varargin{4}:event name
% 测试代码
disp(char(13));
disp(['ID:',num2str(varargin{2})]);disp(['eventname:']);disp(varargin{4});
disp('eventarg:');disp(varargin{3});

[ 本帖最后由 nostalgica 于 2006-9-2 14:49 编辑 ]

评分

1

查看全部评分

发表于 2008-5-22 22:45:52 | 显示全部楼层 来自 北京丰台
Simdroid开发平台
不错啊 !

评分

1

查看全部评分

回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-6-4 10:18 , Processed in 0.053817 second(s), 18 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表