八方音 發表於 2019-1-3 16:43:19

易语言自定义外形按钮实现过程

<p>不少软件作者肯定因为易语言没有内置自定义外形按钮而烦恼,不过你却可以用其他组件来实现——用画板制作自定义外形按钮</p>
<p>1、新建一个“易语言”窗口程序</p>
<p style="text-align: center"><img alt="" src="https://img.jbzj.com/file_images/article/201901/20190103163922104.png" /></p>
<p>2、添加组件——一个画板到窗口内</p>
<p>为了方便定位按钮的位置</p>
<p>你可以把画板的宽度设置为:80,高度也设置为:80</p>
<p>为了清楚画板在哪里,可以把底色设置成你喜欢的颜色</p>
<p style="text-align: center"><img alt="" src="https://img.jbzj.com/file_images/article/201901/20190103163922105.png" /></p>
<p>3、然后就可以输入代码了</p>
<p>先输入变量代码,代码如下:</p>
<div class="jb51code">
<pre class="brush:xhtml;">
.版本 2

.程序集 窗口程序集_启动窗口

.程序集变量 鼠标停留在画板内, 逻辑型

.程序集变量 鼠标移动在画板内, 逻辑型

.程序集变量 横坐标, 整数型

.程序集变量 纵坐标, 整数型

.程序集变量 半径, 整数型

.程序集变量 x, 双精度小数型

.程序集变量 y, 双精度小数型

.子程序 __启动窗口_创建完毕

横坐标 = 50 ' 设置变量数值

纵坐标 = 50 ' 设置变量数值

半径 = 25 ' 设置变量数值

</pre>
</div>
<p></p>
<p style="text-align: center"><img alt="" src="https://img.jbzj.com/file_images/article/201901/20190103163922106.png" /></p>
<p>1、添加画板焦点颜色</p>
<p>先绘画画板外形</p>
<p>代码如下:</p>
<div class="jb51code">
<pre class="brush:xhtml;">
.版本 2

.子程序 _画板1_绘画

.参数 重画区左边, 整数型

.参数 重画区上边, 整数型

.参数 重画区右边, 整数型

.参数 重画区下边, 整数型

画板1.画椭圆 (横坐标 - 半径, 纵坐标 - 半径, 横坐标 + 半径, 纵坐标 + 半径) ' 画板1.画椭圆 你可以替换成 画板1.画矩形 等其他形状

</pre>
</div>
<p></p>
<p style="text-align: center"><img alt="" src="https://img.jbzj.com/file_images/article/201901/20190103163922107.png" /></p>
<p>2、添加画板焦点图片</p>
<p>代码如下:</p>
<div class="jb51code">
<pre class="brush:xhtml;">
.版本 2

.子程序 _画板1_鼠标位置被移动, 逻辑型

.参数 横向位置, 整数型, , 鼠标指针横向位置

.参数 纵向位置, 整数型, , 鼠标指针纵向位置

.参数 功能键状态, 整数型

x = 横向位置 - 横坐标

y = 纵向位置 - 纵坐标

.如果 (x × x + y × y < 半径 × 半径) ' 检测鼠标指针位置是否在画板内

.如果 (鼠标停留在画板内)

.否则

    画板1.刷子颜色 = #浅灰

.如果结束

.如果真 (取反 (鼠标移动在画板内))

    画板1.重画 () ' 重画——画板1.刷子颜色 = #浅灰

.如果真结束

鼠标移动在画板内 = 真 ' 等于真则返回假——鼠标离开画板后画板颜色改变,等于假则返回真——鼠标离开画板后画板颜色不变

.否则

画板1.刷子颜色 = #白色

.如果真 (鼠标移动在画板内)

    画板1.重画 () ' 重画——画板1.刷子颜色 = #白色

.如果真结束

鼠标移动在画板内 = 假 ' 等于真则返回假——鼠标离开画板后画板颜色改变,等于假则返回真——鼠标离开画板后画板颜色不变

</pre>
</div>
<p></p>
<p style="text-align: center"><img alt="" src="https://img.jbzj.com/file_images/article/201901/20190103163922108.png" /></p>
<p>3、按F5运行看看</p>
<p>当鼠标停留在画板内,画板颜色就会变成灰色</p>
<p>当鼠标离开在画板内,画板颜色就会变成白色</p>
<p style="text-align: center"><img alt="" src="https://img.jbzj.com/file_images/article/201901/20190103163922109.png" /></p>
<p style="text-align: center"><img alt="" src="https://img.jbzj.com/file_images/article/201901/20190103163923110.png" /></p>
<p>1、添加画板按钮效果</p>
<p>命令及变量我已经解释过了,就不多解释了</p>
<p>直接输入代码,代码如下:</p>
<div class="jb51code">
<pre class="brush:xhtml;">
.版本 2

.子程序 _画板1_鼠标左键被按下, 逻辑型

.参数 横向位置, 整数型

.参数 纵向位置, 整数型

.参数 功能键状态, 整数型

x = 横向位置 - 横坐标

y = 纵向位置 - 纵坐标

.如果真 (x × x + y × y < 半径 × 半径)

鼠标停留在画板内 = 真

画板1.刷子颜色 = #灰色

.如果真结束

画板1.重画 ()

.子程序 _画板1_鼠标左键被放开, 逻辑型

.参数 横向位置, 整数型

.参数 纵向位置, 整数型

.参数 功能键状态, 整数型

鼠标停留在画板内 = 假

x = 横向位置 - 横坐标

y = 纵向位置 - 纵坐标

.如果真 (x × x + y × y < 半径 × 半径)

信息框 (“按钮被按下”, 0, )

画板1.重画 ()

.如果真结束

</pre>
</div>
<p style="text-align: left"></p>
<p style="text-align: center"><img alt="" src="https://img.jbzj.com/file_images/article/201901/20190103163923111.png" /></p>
<p>2、这样基本画板按钮就完成了</p>
<p>按F5运行看看效果</p>
<p>这样就可以实现自定义外形按钮了</p>
<p style="text-align: center"><img alt="" src="https://img.jbzj.com/file_images/article/201901/20190103163923112.png" /></p>
                           
                            <div class="art_xg">
                              <b>您可能感兴趣的文章:</b><ul><li>详解易语言按钮结束和销毁的应用</li><li>易语言图形按钮控件的用法详解</li><li>易语言最小化按钮制作过程</li><li>易语言超级按钮使用技巧</li><li>浅析易语言窗口上的"关闭"按钮事件</li><li>易语言图形按钮组件切换类型使用讲解</li><li>详解易语言按钮的用法</li></ul>
                            </div>

                        </div>
                        <!--endmain-->
頁: [1]
查看完整版本: 易语言自定义外形按钮实现过程