PowerBuilder鼠标移入移出事件_happymagic的博客-程序员秘密

技术标签: powerbuilder  

PowerBuilder中只有窗口和富文本有mouse事件外,其他都没有

PowerBuiler中没有鼠标移入移出的直接事件,需要我们自己定义

1.首先需要定义一个结构,用来存储鼠标的坐标(position)

2.声明两个全局外部函数

FUNCTION ulong GetCursorPos(ref position lpPoint) LIBRARY "user32.dll"
FUNCTION ulong ScreenToClient(ulong hwnd,ref position lpPoint) LIBRARY "user32.dll"

3.添加timer

在在窗口的open事件或者某个触发事件中添加如下代码:
Timer(0.1)//设置计时器,计时间隔为0.1秒

4.在窗口的timer事件中添加如下代码

position myPA
GetCursorPos(myPA)//获取当前光标位置
ScreenToClient(Handle(this),myPA)//转化为客户区表示
Integer li_xpos,li_ypos
li_xpos = myPA.xpos
li_ypos = myPA.ypos
st_2.Text = String(li_xpos) + ',' + String (li_ypos)
 
Integer li_dww,li_dwh
li_dww = this.tv_parentid.Width//获取数据窗口的Width属性(单位是PB Units)
li_dwh = this.tv_parentid.Height//获取数据窗口的Height属性(单位是PB Units)
li_dww = UnitsToPixels(li_dww,XUnitsToPixels!)//把用PB Units为单位的Width转化为用Pixels为单位
li_dwh = UnitsToPixels(li_dwh,YUnitsToPixels!)//把用PB Units为单位的Height转化为用Pixels为单位
st_3.Text = String(li_dww) + ',' + String (li_dwh)
 
Integer li_dwx,li_dwy
li_dwx = this.tv_parentid.X//获取数据窗口的X属性(与窗口左边界的距离,单位是PB Units)
li_dwy = this.tv_parentid.Y//获取数据窗口的Y属性(与窗口上边界的距离,单位是PB Units)
li_dwx = UnitsToPixels(li_dwx,XUnitsToPixels!)//把用PB Units为单位的X转化为用Pixels为单位
li_dwy = UnitsToPixels(li_dwy,YUnitsToPixels!)//把用PB Units为单位的Y转化为用Pixels为单位
st_4.Text = String(li_dwx) + ',' + String (li_dwy)
 
IF li_xpos < li_dwx OR li_ypos < li_dwy OR li_xpos > li_dwx + li_dww OR li_ypos > li_dwy + li_dwh THEN
 w_departmentdetail.backcolor=rgb(0,  0,  255)//光标在控件外,背景为为蓝色
ELSE
 w_departmentdetail.backcolor=rgb(255,  0,  0)//光标在控件内,背景为红色
END IF


5.效果图

中间的灰色区域是我的数据窗口tv_department

右侧的三行数分别为:st_2,st_3,st_4
————————————————
版权声明:本文为CSDN博主「ClearLoveQ」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/ClearLoveQ/article/details/81541452

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/happymagic/article/details/107497238

智能推荐

fastjson解析HttpServletRequest请求_fastjson httprequest_乄闕的博客-程序员秘密

解析HttpServletRequest请求中的json数据JsonUtilimport java.io.IOException;import javax.servlet.http.HttpServletRequest;import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.JSONObject;public class JsonUtil { public static JSONObject getRequestPost

getParameters failed (empty parameters)_Steve_XiaoHai的博客-程序员秘密

通过debug,逐行运行,发现进入到activityThread类中,在修改activity状态时,释放不掉activity。通过修改activty的lanchMode为:singleTask,解决了此问题。使用相机资源导致出现的错误。

【转】Neutral Density (ND) Filters 中性灰色滤镜_daisyhd的博客-程序员秘密

富士 Neutral Density (ND) Filters 浓度补正滤色片简称减光片,应用于照相时在没有办法或不改变光源强度的情况之下,可以精确的调整曝光量,使得能够在想要的光圈与快门速度条件下,拍摄特殊效果的景物。在 LCD 液晶显示器产业, ND- Filter 常被用来减低面板亮度,以便在各种不同亮度条件下检查液晶表面波纹和亮点缺失,以及其它各种 FPD 之检测应用。ND減光鏡片可以大量減少進光量,並控制景深、強調主題,因此適合大口徑的鏡頭使用。當背景呈現模糊效果時,主題就會清楚的顯現。它廣泛的被

grunt使用小结_茁然-v的博客-程序员秘密

1、安装Grunt:如果你之前安装过老的0.3版本,请先卸载:npm uninstall -g grunt安装Grunt命令行(CLI):npm install -g grunt-cli注1:-g代表全局安装,Grunt有二个版本:服务器端版本(grunt)和客户端版本(grunt-cli)。注2:安装grunt-cli并不等于安装了grunt!grunt CLI的任务很简

华为机试在线训练-牛客网(25)四则运算_Ctrlturtle的博客-程序员秘密

题目描述请实现如下接口    /* 功能:四则运算     * 输入:strExpression:字符串格式的算术表达式,如: "3+2*{1+2*[-4/(8-6)+7]}"         * 返回:算术表达式的计算结果     */    public static int calculate(String strExpression)

ITK spacing的问题_ID5418的博客-程序员秘密

double spacing[3]; spacing[0] = reader->GetOutput()->GetSpacing()[0]; spacing[1] = reader->GetOutput()->GetSpacing()[1]; spacing[2] = reader->GetOutput()->GetSpacing()[2]; int dims[3];

随便推点

使用 WSDL4J 创建 WSDL_yangjunfeng_1985的博客-程序员秘密

使用 WSDL4J 创建 WSDL WSDL4J :  WSDL For JAVA Toolkit,顾名思义,是一个解析和创建WSDL的 JAVA类库(工具包)。 用WSDL4J来解析WSDL的例子比较多,这里不再赘述,但用WSDL4J来创建WSDL的例子却很少,前几天根本没找到这方面的例子,好不容易找到一个 还是在 JSR 110(Java APIs for WSDL...

6. torchvision中的ResNeXt实现_/home/liupc的博客-程序员秘密

在torchvision中,并没有单独实现ResNeXt,而是在实现ResNet的实现中顺便实现的。代码如下,我把与ResNeXt有关的拿出来了:import torchimport torch.nn as nndef conv3x3(in_planes, out_planes, stride=1, groups=1, dilation=1): """3x3 convolution with padding""" return nn.Conv2d(in_planes, ou

【ElasticSearch】安装报错集锦_pip安装elasticsearch出现cwd: [email protected]的博客-程序员秘密

elasticsearch7.1安装过程中遇到了一些问题,通过查找资料几乎都解决掉了,这里简单记录一下 ,供以后查阅参考,也希望可以帮助遇到同样问题的你。问题一:警告提示 1[WARN ][o.e.b.JNANatives ] unable to install syscall filter:java.lang.UnsupportedOperationException: seccomp unavailable: requires kernel 3.5+ with CONFIG_SE...

数据结构(线段树)_数据库 线段树_Dαīsч的博客-程序员秘密

线段树是一种 二叉搜索树,它将一段区间划分为若干单位区间,每一个节点都储存着一个区间。用线段树维护的问题必须满足区间加法,这类似于分治法,线段树将大区间分为小区间,分别求解小区间得到...

android 简单的视频编辑功能_最简单的安卓版视频剪辑只有剪辑功能_红色与青色的博客-程序员秘密

视频编辑在网上找了一些,基本都是依赖ffmpeg,可是我这边要用硬解码所以就自己写了个简单的,先看看效果界面是根据前几天的音频开源工具ringdroid改的,接下来开效果还是可以的,想剪成什么分辨率就剪成什么分辨率,想剪哪段就剪哪段,当然,误差有的不过都不是很多想贴代码,可发现代码挺多的,简单讲讲用到的技术先用MediaExtractor读出视频数据,再用MediaCode...

题目:完成猜数字游戏_a易的博客-程序员秘密

解题思路:实现代码:菜单部分实现:猜数字具体函数实现:测试实现:运行结果:

推荐文章

热门文章

相关标签