【PB案例学习笔记】-08 控件拖动实现

2024-05-24 07:36

本文主要是介绍【PB案例学习笔记】-08 控件拖动实现,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

写在前面

这是PB案例学习笔记系列文章的第8篇,该系列文章适合具有一定PB基础的读者。

通过一个个由浅入深的编程实战案例学习,提高编程技巧,以保证小伙伴们能应付公司的各种开发需求。

文章中设计到的源码,小凡都上传到了gitee代码仓库https://gitee.com/xiezhr/pb-project-example.git

gitee代码仓库

需要源代码的小伙伴们可以自行下载查看,后续文章涉及到的案例代码也都会提交到这个仓库【pb-project-example

如果对小伙伴有所帮助,希望能给一个小星星⭐支持一下小凡。

一、小目标

本篇文章,我们通过Send函数,实现各种控件的拖动,即按住鼠标不放,将控件在窗口内任意移动。

最终实现效果如下

控件拖动

二、Send函数简介

Send 函数用于向窗口发送消息,并立即被执行。这种方式无论是窗口中的控件还是窗口本事都适用

① 语法

Send(handle,messageno,word,long)

② 参数说明

参数类型说明
handleLong指定窗口的系统句柄,将向该窗口发送消息
messagenoUnsignedInteger指定要发送消息号
wordLong指定与消息一起发送的Word类参数值。如果messageno参数指定的消息不适用该参数,那么将这个参数的值设置为0
longLongString指定与消息一起发送的Long型参数值活字符串

三、创建程序基本框架

① 创建examplework 工作区

② 创建exampleapp应用

③ 新建w_main 窗口,Title 设置为“拖动控件”

如果以上步骤忘记的小伙伴,克参照第一篇文章

④ 添加控件,进行窗口布局

在窗口中新建一个SingleLineEdit控件、一个ComandButton 控件、一个CheckBox控件和一个RadioButton控件,

各个控件名称依次为sle_1cb_1cbx_1rb_1,调整控件,并设置控件属性如下图所示

控件布局

⑤ 保存窗口

四、编写代码

① 在窗口中选择sle_1控件,为控件添加【pbm_lbuttondown】 事件,事件起名为ue_mousemove 并添加如下代码

添加事件

添加代码

send(handle(this),274,61458,0)

② 按照上面的方法,为控件cb_1cbx_1rb_1添加事件,添加如下代码

send(handle(this),274,61458,0)

③ 在窗口w_mainMouseDown事件中添加如下代码

send(handle(this),274,61458,0)

④ 在开发界面左边的System Tree 中双击exampleapp应用对象,在其Open事件中添加如下代码

open(w_main)

五、运行程序

运行程序后,我们鼠标选择窗口上的任意一个控件,按住不放即可拖动控件

控件拖动

本期内容到这儿就结束了,希望对您有所帮助。

我峨嵋你下期再见 ヾ(•ω•`)o (●’◡’●)

这篇关于【PB案例学习笔记】-08 控件拖动实现的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/997777

相关文章

Python使用Tenacity一行代码实现自动重试详解

《Python使用Tenacity一行代码实现自动重试详解》tenacity是一个专为Python设计的通用重试库,它的核心理念就是用简单、清晰的方式,为任何可能失败的操作添加重试能力,下面我们就来看... 目录一切始于一个简单的 API 调用Tenacity 入门:一行代码实现优雅重试精细控制:让重试按我

Redis客户端连接机制的实现方案

《Redis客户端连接机制的实现方案》本文主要介绍了Redis客户端连接机制的实现方案,包括事件驱动模型、非阻塞I/O处理、连接池应用及配置优化,具有一定的参考价值,感兴趣的可以了解一下... 目录1. Redis连接模型概述2. 连接建立过程详解2.1 连php接初始化流程2.2 关键配置参数3. 最大连

Python实现网格交易策略的过程

《Python实现网格交易策略的过程》本文讲解Python网格交易策略,利用ccxt获取加密货币数据及backtrader回测,通过设定网格节点,低买高卖获利,适合震荡行情,下面跟我一起看看我们的第一... 网格交易是一种经典的量化交易策略,其核心思想是在价格上下预设多个“网格”,当价格触发特定网格时执行买

python设置环境变量路径实现过程

《python设置环境变量路径实现过程》本文介绍设置Python路径的多种方法:临时设置(Windows用`set`,Linux/macOS用`export`)、永久设置(系统属性或shell配置文件... 目录设置python路径的方法临时设置环境变量(适用于当前会话)永久设置环境变量(Windows系统

Python对接支付宝支付之使用AliPay实现的详细操作指南

《Python对接支付宝支付之使用AliPay实现的详细操作指南》支付宝没有提供PythonSDK,但是强大的github就有提供python-alipay-sdk,封装里很多复杂操作,使用这个我们就... 目录一、引言二、准备工作2.1 支付宝开放平台入驻与应用创建2.2 密钥生成与配置2.3 安装ali

Spring Security 单点登录与自动登录机制的实现原理

《SpringSecurity单点登录与自动登录机制的实现原理》本文探讨SpringSecurity实现单点登录(SSO)与自动登录机制,涵盖JWT跨系统认证、RememberMe持久化Token... 目录一、核心概念解析1.1 单点登录(SSO)1.2 自动登录(Remember Me)二、代码分析三、

PyCharm中配置PyQt的实现步骤

《PyCharm中配置PyQt的实现步骤》PyCharm是JetBrains推出的一款强大的PythonIDE,结合PyQt可以进行pythion高效开发桌面GUI应用程序,本文就来介绍一下PyCha... 目录1. 安装China编程PyQt1.PyQt 核心组件2. 基础 PyQt 应用程序结构3. 使用 Q

RabbitMQ消费端单线程与多线程案例讲解

《RabbitMQ消费端单线程与多线程案例讲解》文章解析RabbitMQ消费端单线程与多线程处理机制,说明concurrency控制消费者数量,max-concurrency控制最大线程数,prefe... 目录 一、基础概念详细解释:举个例子:✅ 单消费者 + 单线程消费❌ 单消费者 + 多线程消费❌ 多

Python实现批量提取BLF文件时间戳

《Python实现批量提取BLF文件时间戳》BLF(BinaryLoggingFormat)作为Vector公司推出的CAN总线数据记录格式,被广泛用于存储车辆通信数据,本文将使用Python轻松提取... 目录一、为什么需要批量处理 BLF 文件二、核心代码解析:从文件遍历到数据导出1. 环境准备与依赖库

linux下shell脚本启动jar包实现过程

《linux下shell脚本启动jar包实现过程》确保APP_NAME和LOG_FILE位于目录内,首次启动前需手动创建log文件夹,否则报错,此为个人经验,供参考,欢迎支持脚本之家... 目录linux下shell脚本启动jar包样例1样例2总结linux下shell脚本启动jar包样例1#!/bin