aardio - 【库】给组件挂接事件 win.ui.ctrl.on

33 篇文章 16 订阅

给组件挂接事件
下载地址:chengxu.online → aardio资源下载 → on.rar
解压后放到:
/lib/godking/on.aardio

部分库源码如下:

//on 挂接事件
namespace godking; 

class on{
	ctor(ctrl){
		this=ctrl
		this.wndproc = {
				[0x204/*_WM_RBUTTONDOWN*/] = function(hwnd,message,wParam,lParam){
					var x,y = ..win.getMessagePos(lParam)
					if owner.onMouse_RDown {if(owner.onMouse_RDown(x,y)!==null) return true; }
				}
				[0x205/*_WM_RBUTTONUP*/] = function(hwnd,message,wParam,lParam){
					var x,y = ..win.getMessagePos(lParam)
					if owner.onMouse_RUp {if(owner.onMouse_RUp(x,y)!==null) return true; }
				}
				[0x206/*_WM_RBUTTONDBLCLK*/] = function(hwnd,message,wParam,lParam){
					var x,y = ..win.getMessagePos(lParam)
					if owner.onMouse_RDblclk {if(owner.onMouse_RDblclk(x,y)!==null) return true; }
				}
				[0x200/*_WM_MOUSEMOVE*/] = function(hwnd,message,wParam,lParam){
					var x,y = ..win.getMessagePos(lParam)
					if owner.onMouse_Move  {if(owner.onMouse_Move(x,y)!==null) return true;}
				}
				[0x20A/*_WM_MOUSEWHEEL*/] = function(hwnd,message,wParam,lParam){
					var x,y = ..win.getMessagePos(lParam)
					if owner.onMouse_Wheel {if(owner.onMouse_Wheel((wParam<<8)/(..math.abs(wParam<<8)),x,y)!==null) return true;} 
				}
				[0x202/*_WM_LBUTTONUP*/] = function(hwnd,message,wParam,lParam){
					var x,y = ..win.getMessagePos(lParam)
					if owner.onMouse_LUp {if(owner.onMouse_LUp(x,y)!==null) return true; }
				}								
				[0x201/*_WM_LBUTTONDOWN*/] = function(hwnd,message,wParam,lParam){
					var x,y = ..win.getMessagePos(lParam)
					if owner.onMouse_LDown {if(owner.onMouse_LDown(x,y)!==null) return true; }
				}
				[0x203/*_WM_LBUTTONDBLCLK*/] = function(hwnd,message,wParam,lParam){
					var x,y = ..win.getMessagePos(lParam)
					if owner.onMouse_LDblclk {if(owner.onMouse_LDblclk(x,y)!==null) return true; }
				}
				[0x101/*_WM_KEYUP*/] = function(hwnd,message,wParam,lParam){
					if owner.onKey_Up {if(owner.onKey_Up(wParam)!==null) return true; }
				}
				[0x100/*_WM_KEYDOWN*/] = function(hwnd,message,wParam,lParam){
					if owner.onKey_Down {if(owner.onKey_Down(wParam)!==null) return true; }
				}
				[0x102/*_WM_CHAR*/] = function(hwnd,message,wParam,lParam){
					if owner.onChar {if(owner.onChar(wParam)!==null) return true; }
				}
		}
	}
}

/***intellisense()
godking.on = 挂接事件
godking.on() = 挂接事件\nbton = godking.on(winform.button)\n!ctrlon.

!ctrlon.onMouse_RDown(x,y) = @.onMouse_RDown = function(x,y){
	__/*这里输入鼠标右键按下事件的代码,有返回值则阻止调用默认回调函数*/
} 
!ctrlon.onMouse_RUp(x,y) = @.onMouse_RUp = function(x,y){
	__/*这里输入鼠标右键放开事件的代码,有返回值则阻止调用默认回调函数*/	
} 
!ctrlon.onMouse_RDblclk(x,y) = @.onMouse_RDblclk = function(x,y){
	__/*这里输入鼠标右键双击事件的代码,有返回值则阻止调用默认回调函数*/	
} 
!ctrlon.onMouse_Move(x,y) = @.onMouse_Move = function(x,y){
	__/*这里输入鼠标移动事件的代码,有返回值则阻止调用默认回调函数*/	
} 
!ctrlon.onMouse_Wheel(x,y) = @.onMouse_Wheel = function(l/*滚动距离*/,x,y){
	__/*这里输入鼠标滚轮滚动事件的代码,有返回值则阻止调用默认回调函数*/	
} 
!ctrlon.onMouse_LUp(x,y) = @.onMouse_LUp = function(x,y){
	__/*这里输入鼠标左键放开事件的代码,有返回值则阻止调用默认回调函数*/	
} 
!ctrlon.onMouse_LDown(x,y) = @.onMouse_LDown = function(x,y){
	__/*这里输入鼠标左键按下事件的代码,有返回值则阻止调用默认回调函数*/	
} 
!ctrlon.onMouse_LDblclk(x,y) = @.onMouse_LDblclk = function(x,y){
	__/*这里输入鼠标左键双击事件的代码,有返回值则阻止调用默认回调函数*/	
} 
!ctrlon.onKey_Up(keycode) = @.onKey_Up = function(keycode){
	__/*这里输入键盘按键放开事件的代码,有返回值则阻止调用默认回调函数*/	
} 
!ctrlon.onKey_Down(keycode) = @.onKey_Down = function(keycode){
	__/*这里输入键盘按键按下事件的代码,有返回值则阻止调用默认回调函数*/	
} 
!ctrlon.onChar(keycode) = @.onChar = function(keycode){
	__/*这里输入键盘字符输入事件的代码,有返回值则阻止调用默认回调函数*/	
} 
end intellisense ***/

示例代码如下:

import win.ui;
/*DSG{{*/
var winform = win.form(text="aardio form";right=759;bottom=469)
winform.add(
button={cls="button";text="Button";left=248;top=224;right=408;bottom=296;z=1};
edit={cls="edit";text="Edit";left=248;top=80;right=416;bottom=192;edge=1;multiline=1;z=2};
static={cls="static";text="Static";left=248;top=344;right=592;bottom=384;font=LOGFONT(h=-16);transparent=1;z=3}
)
/*}}*/

import godking.on

bt = godking.on(winform.button)

bt.onMouse_RDown = function(x,y){
	winform.static.text="按钮鼠标右键按下了"	
}

bt.onMouse_RUp = function(x,y){
	winform.static.text="按钮鼠标右键放开了"	
}

bt.onMouse_LDown = function(x,y){
	winform.static.text="按钮鼠标左键按下了"	
}

bt.onMouse_LUp = function(x,y){
	winform.static.text="按钮鼠标左键放开了"	
}

e=win.ui.ctrl.on(winform.edit)

e.onKey_Up = function(keycode){
    winform.static.text="onKey_Up"+keycode	
}

e.onKey_Down= function(keycode){
    winform.static.text="onKey_Down"+keycode	
}

e.onChar = function(keycode){
    winform.static.text="onChar"+keycode		
	return 1; //阻断了默认回调函数,不能输入字符了	
}

winform.show();
win.loopMessage();
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卢光庆

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值