易语言缩放图片的代码思路, 画板行不行,图片完全随(组件?)的大小改变而改变,不想用现成的图片框 影像框
2个回答
展开全部
全部源码给你,和QQ聊天窗口的相似!
由于画板的绘图效率比较低,一些大图片可能会出现卡的现象!
放入其它组件时注意下窗口的焦点,如焦点不在_启动窗口,_启动窗口_滚轮被滚动 事件会失效!
.版本 2.支持库 eAPI
.程序集 窗口程序集1
.程序集变量 后台, 画板
.程序集变量 图片号
.程序集变量 缩放值X, 小数型
.程序集变量 缩放值Y, 小数型
.程序集变量 x, 整数型
.程序集变量 y, 整数型
.程序集变量 可移动, 逻辑型
.子程序 __启动窗口_创建完毕
边框 = 0
复制窗口组件 (画板1, 后台)
画板1.移动 (0, 0, 取用户区宽度 (), 取用户区高度 ())
后台.移动 (0, 0, 取用户区宽度 (), 取用户区高度 ())
画板1.自动重画 = 真
后台.自动重画 = 真
通用对话框1.过滤器 = “图像文件|*.jpg;*.bmp;*.gif;*.ico”
缩放值X = 1
缩放值Y = 1
.子程序 _画板1_被双击, 逻辑型
.参数 横向位置, 整数型
.参数 纵向位置, 整数型
.参数 功能键状态, 整数型
.如果真 (通用对话框1.打开 ())
图片号 = 载入图片 (通用对话框1.文件名)
绘图 ()
.如果真结束
.子程序 绘图, 逻辑型
.局部变量 htkd
.局部变量 htgd
.如果真 (图片号 = 0)
返回 (假)
.如果真结束
htkd = 缩放值X × 后台.取图片宽度 (图片号)
htgd = 缩放值Y × 后台.取图片高度 (图片号)
画板1.移动 (0, 0, htkd, htgd)
后台.移动 (0, 0, htkd, htgd)
后台.画图片 (图片号, 0, 0, htkd, htgd, )
后台.复制 (, , , , 画板1, 0, 0, )
移动 (, , htkd, htgd)
返回 (真)
.子程序 _画板1_鼠标左键被按下, 逻辑型
.参数 横向位置, 整数型
.参数 纵向位置, 整数型
.参数 功能键状态, 整数型
' 发送信息 (161, 2, 0)
x = 横向位置
y = 纵向位置
可移动 = 真
捕获鼠标 (画板1.取窗口句柄 ())
.子程序 _画板1_鼠标左键被放开, 逻辑型
.参数 横向位置, 整数型
.参数 纵向位置, 整数型
.参数 功能键状态, 整数型
释放鼠标 ()可移动 = 假
.子程序 _画板1_鼠标位置被移动, 逻辑型
.参数 横向位置, 整数型
.参数 纵向位置, 整数型
.参数 功能键状态, 整数型
.如果真 (可移动)
左边 = 取鼠标水平位置 () - x
顶边 = 取鼠标垂直位置 () - y
.如果真结束
.子程序 __启动窗口_滚轮被滚动, 逻辑型
.参数 滚动距离, 整数型
.参数 功能键状态, 整数型
缩放值X = 缩放值X + 滚动距离 × 0.1
缩放值Y = 缩放值Y + 滚动距离 × 0.1
.如果真 (缩放值X < 0.1)
缩放值X = 0.1
.如果真结束
.如果真 (缩放值X > 5)
缩放值X = 5
.如果真结束
.如果真 (缩放值Y < 0.1)
缩放值Y = 0.1
.如果真结束
.如果真 (缩放值X > 5)
缩放值Y = 5
.如果真结束
绘图 ()
输出调试文本 (缩放值X)
由于画板的绘图效率比较低,一些大图片可能会出现卡的现象!
放入其它组件时注意下窗口的焦点,如焦点不在_启动窗口,_启动窗口_滚轮被滚动 事件会失效!
.版本 2.支持库 eAPI
.程序集 窗口程序集1
.程序集变量 后台, 画板
.程序集变量 图片号
.程序集变量 缩放值X, 小数型
.程序集变量 缩放值Y, 小数型
.程序集变量 x, 整数型
.程序集变量 y, 整数型
.程序集变量 可移动, 逻辑型
.子程序 __启动窗口_创建完毕
边框 = 0
复制窗口组件 (画板1, 后台)
画板1.移动 (0, 0, 取用户区宽度 (), 取用户区高度 ())
后台.移动 (0, 0, 取用户区宽度 (), 取用户区高度 ())
画板1.自动重画 = 真
后台.自动重画 = 真
通用对话框1.过滤器 = “图像文件|*.jpg;*.bmp;*.gif;*.ico”
缩放值X = 1
缩放值Y = 1
.子程序 _画板1_被双击, 逻辑型
.参数 横向位置, 整数型
.参数 纵向位置, 整数型
.参数 功能键状态, 整数型
.如果真 (通用对话框1.打开 ())
图片号 = 载入图片 (通用对话框1.文件名)
绘图 ()
.如果真结束
.子程序 绘图, 逻辑型
.局部变量 htkd
.局部变量 htgd
.如果真 (图片号 = 0)
返回 (假)
.如果真结束
htkd = 缩放值X × 后台.取图片宽度 (图片号)
htgd = 缩放值Y × 后台.取图片高度 (图片号)
画板1.移动 (0, 0, htkd, htgd)
后台.移动 (0, 0, htkd, htgd)
后台.画图片 (图片号, 0, 0, htkd, htgd, )
后台.复制 (, , , , 画板1, 0, 0, )
移动 (, , htkd, htgd)
返回 (真)
.子程序 _画板1_鼠标左键被按下, 逻辑型
.参数 横向位置, 整数型
.参数 纵向位置, 整数型
.参数 功能键状态, 整数型
' 发送信息 (161, 2, 0)
x = 横向位置
y = 纵向位置
可移动 = 真
捕获鼠标 (画板1.取窗口句柄 ())
.子程序 _画板1_鼠标左键被放开, 逻辑型
.参数 横向位置, 整数型
.参数 纵向位置, 整数型
.参数 功能键状态, 整数型
释放鼠标 ()可移动 = 假
.子程序 _画板1_鼠标位置被移动, 逻辑型
.参数 横向位置, 整数型
.参数 纵向位置, 整数型
.参数 功能键状态, 整数型
.如果真 (可移动)
左边 = 取鼠标水平位置 () - x
顶边 = 取鼠标垂直位置 () - y
.如果真结束
.子程序 __启动窗口_滚轮被滚动, 逻辑型
.参数 滚动距离, 整数型
.参数 功能键状态, 整数型
缩放值X = 缩放值X + 滚动距离 × 0.1
缩放值Y = 缩放值Y + 滚动距离 × 0.1
.如果真 (缩放值X < 0.1)
缩放值X = 0.1
.如果真结束
.如果真 (缩放值X > 5)
缩放值X = 5
.如果真结束
.如果真 (缩放值Y < 0.1)
缩放值Y = 0.1
.如果真结束
.如果真 (缩放值X > 5)
缩放值Y = 5
.如果真结束
绘图 ()
输出调试文本 (缩放值X)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |