win.ui.tracker 输入跟踪器的使用

By admin at 2019-01-20 • 0人收藏 • 312人看过

校长之前也说,plus的鼠标事件功能就是这个实现的,

有些窗体或者控件需要鼠标事件的话,可以使用这个.

下面利用这个功能实现鼠标拖动摄像头上面的一根线移动


image.png

import fonts.fontAwesome;
import win.ui;
/*DSG{{*/
var winform = win.form(text="aardio form";right=812;bottom=577;bgcolor=16777215)
winform.add(
picturebox={cls="picturebox";left=22;top=23;right=710;bottom=374;bgcolor=15780518;db=1;dl=1;dr=1;dt=1;notify=1;z=1};
plus={cls="plus";left=370;top=305;right=527;bottom=362;bgcolor=65280;z=3};
plus2={cls="plus";text="预览按钮效果";left=605;top=301;right=747;bottom=356;bgcolor=-8355840;font=LOGFONT(h=-16;name='FontAwesome';charset=0);hide=1;notify=1;z=2};
plus3={cls="plus";left=183;top=19;right=185;bottom=383;bgcolor=255;notify=1;z=4}
)
/*}}*/

winform.plus2.skin({
	background={
		active=0xFFCF8E2D;
		default=0xFF008080;
		hover=0xFF00C2C2
	};

})

winform.plus.skin({
	background={
		active=0xFFCF8E2D;
		default=0xFF008080;
		hover=0xFF00C2C2
	};

})

var VideoCapX1 = winform.picturebox.createEmbed("{912FB007-DD9A-11D3-BD8D-DAAFCB8D9378}")
var cap = VideoCapX1._object
cap.GetVideoDeviceCount()
cap.GetVideoDeviceName(0)
cap.setVideoDeviceIndex(0)
cap.setPreviewAudio(0);
cap.setPreviewScale(true)
cap.setConnected(true)
cap.setPreview(true)

//自绘plus背景
/*
winform.plus3.onDrawBackground = function(graphics,rc,backgroundColor,clr){
    var pen = gdip.pen(backgroundColor,2);
    graphics.drawLine(pen,(rc.right-rc.left)/2,rc.top,(rc.right-rc.left)/2,rc.bottom);
    pen.delete()
    return true;//返回true阻止绘制默认背景
}
*/

winform.plus2.oncommand = function(id,event){
	winform.msgbox("点击了")
}

winform.plus3.setParent(winform.picturebox)

winform.plus2.setParent(winform.picturebox)
winform.plus.setParent(winform.picturebox)
winform.picturebox.setParent(winform)


var tack2 = win.ui.tracker(winform.plus3);
tack2.onMouseEnter = function(wParam,lParam){
	 win.ui.waitCursor(true,::User32.LoadCursor(null,0x7F84/*_IDC_SIZEWE*/));
}
tack2.onMouseLeave = function(wParam,lParam){
	win.ui.waitCursor(false);
}
import mouse
tack2.onMouseDrag = function(wParam,lParam){ 
    //var x,y = win.getMessagePos(lParam);
    var x,y = mouse.getPos();
    var fx,fy = win.toClient(winform.picturebox.hwnd,x,y)
    //var fx,fy = win.toClient(winform.hwnd,x,y)
	 var xx,yy,cx,cy = winform.plus3.getPos()
	 winform.plus3.setPos(fx,yy);
}



winform.show() 
win.loopMessage();


1 个回复 | 最后更新于 2019-01-23
2019-01-23   #1

IDC_APPSTARTING 标准的箭头和小沙漏

IDC_ARROW 标准的箭头

IDC_CROSS 十字光标

IDC_HAND Windows 98/Me, Windows 2000/XP: Hand

IDC_HELP 标准的箭头和问号

IDC_IBEAM 工字光标

IDC_ICON Obsolete for applications marked version 4.0 or later.

IDC_NO 禁止圈

IDC_SIZE Obsolete for applications marked version 4.0 or later. Use IDC_SIZEALL.

IDC_SIZEALL 四向箭头指向东、西、南、北

IDC_SIZENESW 双箭头指向东北和西南

IDC_SIZENS 双箭头指向南北

IDC_SIZENWSE 双箭头指向西北和东南

IDC_SIZEWE 双箭头指向东西

IDC_UPARROW 垂直箭头

IDC_WAIT 沙漏,Windows7系统下会显示为选择的圆圈表示等待


登录后方可回帖

登 录
信息栏
本站永久域名:HtmLayout.Cn
纯私人站,当笔记本用的,学到哪写到哪,目前正在学aardio+halcon机器视觉.
本 站 主 站:Stm32cube中文网
Aardio 官方站:Aardio官方
Aardio最新功能:Aardio官方更新日志
aardio在线手册Aardio在线手册
Htmlayout皮肤Htmlayout皮肤引擎介绍
黑猫Aar教程网:简码编程
C大Aardio论坛:Aar爱好者论坛
AARDIO语言QQ群:70517368
赞助商:才仁机械
下载站:非凡软件站
Loading...