转载请注明:敏捷学院-技术资源库原文链接:http://dev.mjxy.cn/a-Step-4-transparency-color-line-width-and-the-size-of-the-cue-ball.aspx

转载请注明: 敏捷学院-技术资源库  http://mjxy.cn  作者:邢泉

本节内容介绍如何使用TrackBar控件改变窗体透明度,绘制线宽带以及母球的大小,关于窗体界面的设计请参考  步骤2:创建项目添加主窗体。
 
透明度
使用TrackBar控件frmOpacityTrackBar来控制窗体的透明度。
为frmOpacityTrackBar添加Scroll事件。Scroll事件是当TrackBar被滑动的时候触发。首先选中frmOpactiyTrackBar控件,然后切换到“属性”窗口,在事件列表里找到Scroll事件,接着双击Scroll事件。开发工具会为我们生成事件的代码。

Form窗体的不透明度是使用Opacity属性值来表示的。Opacity 属性使您可以指定窗体及其控件的透明度级别。将此属性设置为小于 100% (1.00) 的值时,会使整个窗体(包括边框)更透明。将此属性设置为值 0% (0.00) 时,会使窗体完全不可见。可以使用此属性提供不同级别的透明度,或者提供如窗体逐渐进入或退出视野这样的效果。例如,可以通过将 Opacity 属性设置为值 0% (0.00),并逐渐增加该值直到它达到 100% (1.00),使一个窗体逐渐进入视野。

frmOpacityTrackBar在步骤2:创建项目添加主窗体中定义了Maximum的值是100(不透明),Minimum的值是5(最小透明度)。所以我们只需要在frmOpacityTrackBar的Scroll事件中根据根据frmOpacityTrackBar的属性Value(当前滑动的值)来修改Form窗体的Opacity 属性即可。
 
示例代码:

//窗口透明度      
private void frmOpacityTrackBar_Scroll(object sender, EventArgs e)
{
     this.Opacity = frmOpacityTrackBar.Value / 100.0;
}

线宽
使用TrackBar控件penWeigthTrackBar来改变绘制图像的线宽。同设置窗体透明度一样,我penWeightTrackBar控件添加Scroll。penWeigthTrackBar在步骤2:创建项目添加主窗体中定义了Maximum的值是20。Minimum的值是1。
示例代码:

//线宽
private void penWeigthTrackBar_Scroll(object sender, EventArgs e)
{
   this.penWidth = penWeigthTrackBar.Value/10;
}

母球大小
改变母球大小的方法与上面相同,这里我们添加一个成员变量base_radius来表示母球的初始大小。

public partial class Form1 : Form
{
      private const float radius_base = 9.5f;
      ….
 }

添加ballSizeTrackBar的Scroll事件代码

private void ballSizeTrackBar_Scroll(object sender, EventArgs e)
 {
        this.radius = radius_base +  ballSizeTrackBar.Value / 10;
 }

颜色
绘制图形的颜色,为colorBtn添加单击事件。改变画笔颜色的同时也修改colorBtn的背景颜色,以方便的知道我们当前选择的颜色。
示例代码

//颜色
private void colorBtn_Click(object sender, EventArgs e)
{
   if (colorDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
   {
        colorBtn.BackColor = penColor = colorDialog1.Color;
   }
}

测试运行我们的程序如下图所示:

你可以试着改变窗体的透明度,线宽,母球大小来观察运行的结果。
 
清除图像
正如步骤1:桌球瞄准器介绍与使用方法中描述的,我们在Form窗体右键单击的时候才清除已经绘制的图像。修改Form窗体的鼠标单击事件:

private void Form1_MouseClick(object sender, MouseEventArgs e)
{
    if (e.Button == System.Windows.Forms.MouseButtons.Right)
    {  
        //清除图像
        this.Refresh();
    }
    else if (e.Button == System.Windows.Forms.MouseButtons.Left)
    {
        //记住线条起点
        startPoint = new Point(e.X, e.Y);
    }
}

代码下载
taiqiu_step4.zip

本节内容结束。
下一节讲述如何使用注册表保存设置好的值,这样的好处是在程序下次启动的时候还会保留上一次配置的结果,在使用上会给我们带来方便。
 
参考资料
http://msdn.microsoft.com/zh-cn/library/system.windows.forms.form.opacity(VS.80).aspx
http://msdn.microsoft.com/zh-cn/library/system.windows.forms.trackbar(VS.80).aspx
http://msdn.microsoft.com/zh-cn/library/system.windows.forms.trackbar(VS.80).aspx

更多内容
http://dev.mjxy.cn/a-Tutorial-5-QQ-Snooker-sight.aspx

开发QQ桌球瞄准器(4):透明度、颜色、线宽与母球大小相关推荐

  1. tt桌球瞄准器手机版_新年换台新手机!各价位段哪些机型值得入手?

    新机=新机遇.新机会,2021年请对我好一点,不如就从换个手机开始? 我们为大家吐血盘点了截止发稿各价位段上最推荐入手的机型,颗粒度500元一档,不止考虑性价比,还会参考真实用户体验.这一年群机荟萃. ...

  2. tt桌球瞄准器手机版_法国或将禁止不可拆卸手机,想当年手机后盖随便拆开玩儿...

    近日,法国通过了一项<维修权>相关法案,针对手机.电脑等电子消费品,规定禁止不可拆卸.维修.替换零件的一体机上市.并且,将对电子产品的易维修性进行1-10的打分,来向消费者提示设备的拆卸和 ...

  3. Qt5学习 模仿qq音乐播放器样式(2)——点击动画效果+歌词颜色变换展示

    拖的太久,主要再上一篇文章中,新学习了相关知识,做了右键菜单,点击按钮动画切换窗口和播放时歌词颜色显示当前播放位置. 主要为了实现功能的展示,所以很多文件读取都直接采用了本地文件这种比较low的方式. ...

  4. python如何自制音乐软件_Python开发制作酷狗和QQ音乐下载器

    开发工具 **Python版本:**3.6.4 相关模块: requests模块 以及一些Python自带的模块. 环境搭建 安装Python并添加到环境变量,pip安装需要的相关模块即可. 相关文件 ...

  5. 从零玩转jQuery之项目开发(QQ音乐播放器)

    QQ音乐播放器项目 大体效果如下: HTML结构分析: 一.页面布局 1.首先来看下HTML大体结构: <div class="header"></div> ...

  6. iOS开发 QQ粘性动画效果

    QQ(iOS)客户端的粘性动画效果 时间 2016-02-17 16:50:00  博客园精华区 原文  http://www.cnblogs.com/ziyi--caolu/p/5195615.ht ...

  7. .net vue漂亮登录界面_基于 electron-vue 开发的音乐播放器「实践」

    作者:XiaoTuGou 转发链接:https://github.com/SmallRuralDog 前言 基于 electron-vue 开发的音乐播放器,界面模仿QQ音乐. 技术栈electron ...

  8. 截获网易云、酷狗、QQ音乐播放器桌面歌词画面心德

    在直播项目中 需要捕获某个窗口的画面并共享 总结了如下几种场景中窗口的捕获方法 1.dc拷贝(BitBlt.PrintWindow) 这是最基本的方法 直接拿到窗口dc 然后从dc中拷贝窗口画面 可优 ...

  9. 微信PHP开发《音乐播放器》

    文章目录 前言 一.简介 二.引入Vant框架 1.引入库 2.需要用到的知识 三.页面编写,以及js的实现 1.首页 2.搜索页 3.获取搜索歌曲 4.播放页 5.榜单列表页 6.对应页面的json ...

  10. 【QQ音乐】QQ音乐播放器超酷使用技巧逐个揭秘

    [编者按]QQ音乐播放器凭借QQ强大的人气,目前已经成为许多朋友听歌的首选了,它带给我们无与伦比的快乐音乐体验.QQ音乐播放器的功能是如此的丰富,用户不仅仅是简单的在线听歌,还可以观看MV.收听在线广 ...

最新文章

  1. 【iOS】自定义控件入门:可拖动的环形进度
  2. Django REST framework API 指南(11):序列化·关系
  3. 08--MySQL自学教程:DQL(数据库查询)字段控制查询、聚合函数、分组查询、limit(二)
  4. MySQL: Connection Refused,调整 mysql.ini中的 max_connections
  5. Replacing the ESXi Host Default Certificate with a CA-Signed Certificate
  6. Python如何引用豆瓣api镜像地址
  7. wxWidgets之wxGrid控件
  8. .NET6之MiniAPI(二十一):限流
  9. call和ret(f)指令
  10. 将自己名字PS到他人论文上,并推文说在Nature上发了新文章,如此操作你见过吗?...
  11. Python | 面试必问,线程与进程的区别,Python中如何创建多线程?
  12. 题外:分类篇(音乐风格分类)基于BP神经网络
  13. C/S模型之TCP协议
  14. ap.net core 教程(三)
  15. python学习笔记011——检查变量类型type()
  16. 免费获得卡巴斯基key的方法
  17. android 模拟gps坐标,android中模拟器中实现GPS坐标改变
  18. 布料仿真先导2-带阻尼的单个小球单摆下的拉格朗日方程列些和matlab仿真
  19. Processing 案例 | 诡异的八爪鱼
  20. HDU 4417 Super Mario(离线线段树or树状数组)

热门文章

  1. 记车架号识别程序部署参考文档
  2. IP协议的详细知识总结
  3. Unity-WebGL遇到的各种坑(一)
  4. 全面了解#中国加密艺术圈、元宇宙和就业
  5. 中标麒麟V7系统开启日志服务器收集日志
  6. Linux下sz下载文件超过4G办法
  7. python生成word文档有哪些库_python实现生成word文档并转为pdf
  8. 拼多多砍价群大王:拼多多为什么3年就能上市?
  9. Django教程 —— 站点后台管理
  10. 485无线传输通讯模块