|
发表于 2025-7-12 14:56:26
|
显示全部楼层
浙江省湖州市
以下是易语言实现“透明文字图跟随鼠标光标右下角”的完整代码,通过窗口透明和鼠标位置实时获取实现效果:### 核心代码实现```易语言.版本 2.支持库 eAPI.支持库 spec.支持库 iext.程序集 窗口程序集_启动窗口.全局变量 透明文字图路径, 文本型 // 透明文字图的路径.全局变量 跟随偏移X, 整数型 // X轴偏移(光标右侧距离).全局变量 跟随偏移Y, 整数型 // Y轴偏移(光标下方距离).子程序 _启动窗口_创建完毕 // 初始化参数 透明文字图路径 = 取运行目录 () + “\透明文字图.png” // 替换为你的图片路径 跟随偏移X = 10 // 光标右侧10像素 跟随偏移Y = 10 // 光标下方10像素 // 设置窗口属性(关键:无边框、透明、置顶) 启动窗口.边框 = #无边框 启动窗口.透明类型 = 1 // 全透明(仅图片可见) 启动窗口.透明度 = 255 // 不影响图片透明度 启动窗口.置顶 = 真 // 始终显示在最上层 启动窗口.可视 = 真 // 加载透明图片 图片框1.图片 = 读入文件 (透明文字图路径) 图片框1.宽度 = 图片框1.取图片宽度 () 图片框1.高度 = 图片框1.取图片高度 () // 启动鼠标位置监听(每10毫秒更新一次,确保跟随流畅) 时钟1.时钟周期 = 10.子程序 _时钟1_周期事件.局部变量 鼠标X, 整数型.局部变量 鼠标Y, 整数型.局部变量 屏幕宽度, 整数型.局部变量 屏幕高度, 整数型.局部变量 窗口新X, 整数型.局部变量 窗口新Y, 整数型 // 获取当前鼠标位置(屏幕坐标) 取鼠标位置 (鼠标X, 鼠标Y) // 计算窗口新位置(光标右下角:鼠标X+偏移X,鼠标Y+偏移Y) 窗口新X = 鼠标X + 跟随偏移X 窗口新Y = 鼠标Y + 跟随偏移Y // 限制窗口不超出屏幕范围 屏幕宽度 = 取屏幕宽度 () 屏幕高度 = 取屏幕高度 () .如果 (窗口新X + 启动窗口.宽度 > 屏幕宽度) 窗口新X = 屏幕宽度 - 启动窗口.宽度 // 右边界限制 .如果结束 .如果 (窗口新Y + 启动窗口.高度 > 屏幕高度) 窗口新Y = 屏幕高度 - 启动窗口.高度 // 下边界限制 .如果结束 // 移动窗口到计算位置 移动窗口 (启动窗口.取窗口句柄 (), 窗口新X, 窗口新Y).子程序 _按钮_选择图片_被单击.局部变量 打开文件对话框, 整数型.局部变量 选择的文件, 文本型 // 选择透明文字图(支持PNG等透明格式) 打开文件对话框 = 创建打开文件对话框 () 设置打开文件对话框 (打开文件对话框, , “图片文件|*.png;*.gif;*.ico”, “选择透明文字图”, , ) .如果 (显示打开文件对话框 (打开文件对话框) = 真) 选择的文件 = 取打开文件对话框文件名 (打开文件对话框) 透明文字图路径 = 选择的文件 图片框1.图片 = 读入文件 (透明文字图路径) // 更新图片 图片框1.宽度 = 图片框1.取图片宽度 () // 自适应图片大小 图片框1.高度 = 图片框1.取图片高度 () 启动窗口.宽度 = 图片框1.宽度 // 窗口大小适配图片 启动窗口.高度 = 图片框1.高度 .如果结束 销毁打开文件对话框 (打开文件对话框).子程序 _按钮_开启跟随_被单击 时钟1.时钟周期 = 10 // 启动跟随(10毫秒刷新一次位置) 标签状态.标题 = “状态:已开启跟随”.子程序 _按钮_关闭跟随_被单击 时钟1.时钟周期 = 0 // 停止跟随 标签状态.标题 = “状态:已关闭跟随”.子程序 _启动窗口_尺寸被改变 // 确保窗口大小与图片一致 图片框1.宽度 = 启动窗口.宽度 图片框1.高度 = 启动窗口.高度.子程序 _启动窗口_将被销毁 时钟1.时钟周期 = 0 // 停止时钟,释放资源```### 界面设计说明1. **窗口设置**: - 启动窗口设为“无边框”,`透明类型`设为“全透明”(仅图片可见)。 - 窗口初始大小根据图片自动调整(加载图片后更新)。2. **控件布局**: - 一个`图片框1`:用于显示透明文字图,`对齐方式`设为“缩放适应”。 - 三个按钮:“选择图片”“开启跟随”“关闭跟随”,用于交互控制。 - 一个`标签状态`:显示当前跟随状态。### 使用方法1. 准备一张透明背景的文字图片(推荐PNG格式,确保文字区域不透明)。 2. 运行程序,点击“选择图片”导入透明文字图。 3. 点击“开启跟随”,图片会自动跟随鼠标光标右下角(可通过修改`跟随偏移X/Y`调整距离)。 4. 点击“关闭跟随”,图片停止移动。### 关键技术点1. **实时位置更新**:通过`时钟`组件每10毫秒获取一次鼠标位置(`取鼠标位置`),确保跟随流畅。 2. **边界限制**:计算窗口新位置时,避免图片超出屏幕范围(判断是否超过屏幕宽高)。 3. **透明效果**:利用窗口全透明属性,只显示图片内容,实现“悬浮”视觉效果。 4. **自适应大小**:窗口和图片框自动适配导入图片的尺寸,无需手动调整。通过以上代码,可实现透明文字图精准跟随鼠标光标,且界面简洁、操作方便,适用于标注、提示等场景。
窗口程序集名 | 保 留 | 保 留 | 备 注 | 窗口程序集_启动窗口 | | | |
|
透明文字图路径 | 文本型 // 透明文字图的路径 | | | 跟随偏移X | 整数型 // X轴偏移(光标右侧距离) | | | 跟随偏移Y | 整数型 // Y轴偏移(光标下方距离) | | |
// 初始化参数 透明文字图路径 = 取运行目录 () + “\透明文字图.png” // 替换为你的图片路径 跟随偏移X = 10 // 光标右侧10像素 跟随偏移Y = 10 // 光标下方10像素 // 设置窗口属性(关键:无边框、透明、置顶) 启动窗口.边框 = #无边框 启动窗口.透明类型 = 1 // 全透明(仅图片可见) 启动窗口.透明度 = 255 // 不影响图片透明度 启动窗口.置顶 = 真 // 始终显示在最上层 启动窗口.可视 = 真 // 加载透明图片 图片框1.图片 = 读入文件 (透明文字图路径 )图片框1.宽度 = 图片框1. 取图片宽度 ()图片框1.高度 = 图片框1. 取图片高度 ()// 启动鼠标位置监听(每10毫秒更新一次,确保跟随流畅) 时钟1.时钟周期 = 10 变量名 | 类 型 | 静态 | 数组 | 备 注 | 鼠标X | 整数型 | | | 鼠标Y | 整数型 | | | 屏幕宽度 | 整数型 | | | 屏幕高度 | 整数型 | | | 窗口新X | 整数型 | | | 窗口新Y | 整数型 | | |
// 获取当前鼠标位置(屏幕坐标) 取鼠标位置 (鼠标X, 鼠标Y )// 计算窗口新位置(光标右下角:鼠标X+偏移X,鼠标Y+偏移Y) 窗口新X = 鼠标X + 跟随偏移X 窗口新Y = 鼠标Y + 跟随偏移Y // 限制窗口不超出屏幕范围 屏幕宽度 = 取屏幕宽度 ()屏幕高度 = 取屏幕高度 () 如果 (窗口新X + 启动窗口.宽度 > 屏幕宽度 ) 窗口新X = 屏幕宽度 - 启动窗口.宽度 // 右边界限制 如果 (窗口新Y + 启动窗口.高度 > 屏幕高度 ) 窗口新Y = 屏幕高度 - 启动窗口.高度 // 下边界限制 // 移动窗口到计算位置移动窗口 (启动窗口. 取窗口句柄 (), 窗口新X, 窗口新Y )变量名 | 类 型 | 静态 | 数组 | 备 注 | 打开文件对话框 | 整数型 | | | 选择的文件 | 文本型 | | |
// 选择透明文字图(支持PNG等透明格式) 打开文件对话框 = 创建打开文件对话框 ()设置打开文件对话框 (打开文件对话框, , “图片文件|*.png;*.gif;*.ico”, “选择透明文字图”, , ) 如果 (显示打开文件对话框 (打开文件对话框 ) = 真) 选择的文件 = 取打开文件对话框文件名 (打开文件对话框 ) 透明文字图路径 = 选择的文件  图片框1.图片 = 读入文件 (透明文字图路径 ) // 更新图片  图片框1.宽度 = 图片框1. 取图片宽度 () // 自适应图片大小  图片框1.高度 = 图片框1. 取图片高度 () 启动窗口.宽度 = 图片框1.宽度 // 窗口大小适配图片  启动窗口.高度 = 图片框1.高度 销毁打开文件对话框 (打开文件对话框)时钟1.时钟周期 = 10 // 启动跟随(10毫秒刷新一次位置) 标签状态.标题 = “状态:已开启跟随”时钟1.时钟周期 = 0 // 停止跟随 标签状态.标题 = “状态:已关闭跟随”// 确保窗口大小与图片一致 图片框1.宽度 = 启动窗口.宽度 图片框1.高度 = 启动窗口.高度 时钟1.时钟周期 = 0 // 停止时钟,释放资源
|
|