A25:捕获鼠标与按键事件

一、鼠标的按键事件

  • 普通控件需要调用 win.ui.tracker 以监听
    onMouse...,onKey...,onSysKey... 前缀的鼠标与按键事件以及 onFocusGot,onFocusLost 事件。
    并且所有状态切换都会触发 onStateChange 事件。

二、plus 控件

  • plus 控件已默认调用了 win.ui.tracker,支持 win.ui.tracker 对象的所有事件

-鼠标事件

  • 鼠标移入 onMouseEnter
  • 鼠标移出 onMouseLeave
  • 鼠标拖拽 onMouseDrag
  • 鼠标单击 onMouseClick
  • 鼠标双击 onMouseDoubleClick
  • 鼠标右键按下 onRightMouseDown
  • 鼠标滚轮事件 onMouseWheel

三、程序

复制代码
//捕获鼠标与按键事件
import win.ui;
/*DSG{{*/
var winform = win.form(text="捕获鼠标与按键事件";right=481;bottom=355)
winform.add(
button={cls="button";text="普通控件";left=57;top=154;right=255;bottom=206;z=2};
plus={cls="plus";text="plus 控件";left=57;top=63;right=256;bottom=103;bgcolor=0xF0CAA6;color=0x800000;font=LOGFONT(h=-13);textPadding={left=5};z=1}
)
/*}}*/

winform.plus.skin({
	color={
		active=0xFF002200;
		default=0xFF000080;
		disabled=0xFF6D6D6D;
		hover=0xFFFF0000		
	}
})

import win.ui.tracker;

/*
普通控件需要调用 win.ui.tracker 以监听
onMouse...,onKey...,onSysKey... 前缀的鼠标与按键事件以及 onFocusGot,onFocusLost 事件。
并且所有状态切换都会触发 onStateChange 事件。
*/
var tracker = win.ui.tracker(winform.button);//返回的 tracker 实际上等于控件自身,但可以获得 win.ui.tracker 的智能提示支持。

tracker.onMouseEnter = function(wParam,lParam){
	owner.text = "鼠标移入"	
}

tracker.onMouseLeave = function(wParam,lParam){
	owner.text = "鼠标移出"	
}

//plus 控件已默认调用了 win.ui.tracker,支持 win.ui.tracker 对象的所有事件
winform.plus.onMouseEnter = function(wParam,lParam){
	owner.text = "鼠标移入"
}

winform.plus.onMouseLeave = function(wParam,lParam){
	owner.text = "鼠标移出"	
}

winform.plus.onMouseDrag = function(wParam,lParam){ 
    var x,y = win.getMessagePos(lParam);
	owner.text = "鼠标拖拽"		 
}

winform.plus.onMouseClick = function(wParam,lParam){
    var x,y = win.getMessagePos(lParam);
	owner.text = "鼠标单击"		
}

winform.plus.onMouseDoubleClick = function(wParam,lParam){
    var x,y = win.getMessagePos(lParam);
	owner.text = "鼠标双击"		
}

winform.plus.onMouseDown = function(wParam,lParam){
    var x,y = win.getMessagePos(lParam);
	owner.text = "鼠标按下"	
}

winform.plus.onRightMouseDown = function(wParam,lParam){
    var x,y = win.getMessagePos(lParam);
	owner.text = "鼠标右键按下"		
}

winform.plus.onMouseWheel = function(flags,delta,lParam){
    delta = delta/(120/3); 
	owner.text = "鼠标滚轮事件 delta=" + delta;		
}

winform.show();
win.loopMessage();

四、界面

相关推荐
像一只黄油飞2 分钟前
第二章-04-数据类型
笔记·python·学习·零基础
elseif1235 分钟前
初学者必背【考点清单(大全)】【上篇】
开发语言·c++·笔记·学习·循环结构·分支结构·考纲
23471021278 分钟前
4.17 学习笔记
开发语言·软件测试·笔记·python·学习
智者知已应修善业14 分钟前
【51单片机按键控制流水灯+数码管显示按键次数】2023-6-15
c++·经验分享·笔记·算法·51单片机
扣脑壳的FPGAer24 分钟前
数字信号处理学习笔记--Chapter 1.4.1 时域采样定理基本概念
笔记·学习·信号处理
kobesdu1 小时前
【ROS2实战笔记-6】RobotPerf:机器人计算系统的基准测试方法论
笔记·机器人·ros
凉、介1 小时前
从设备树到驱动源码:揭秘嵌入式 Linux 中 MMC 子系统的统一与差异
linux·驱动开发·笔记·学习·嵌入式·sd·emmc
zore_c1 小时前
【C++】C++类和对象实现日期类项目——时间计算器!!!
java·c语言·数据库·c++·笔记·算法·排序算法
海绵宝宝的月光宝盒1 小时前
3-机加工工艺
经验分享·笔记·其他·自动化·学习方法
23471021273 小时前
4.18 学习笔记
软件测试·笔记·python·学习