VB实现窗体淡入淡出代码
Visual Basic中字符淡出淡入的实现
Visual Basic中字符淡出淡入的实现
姜军
【期刊名称】《计算机时代》
【年(卷),期】1998(000)007
【摘要】笔者偶尔在《计算机世界》上读到一篇关于在VISUAL FOXPRO中实现字符的淡出淡入的文章,受此启发,笔者参照原文章用Visual Basic4.0也编写了一段类似的字符的淡出淡入程序,以此说明Microsoft的可视化开发工具具有的共性:相同或相似的图形用户界面(GUI),面向对象和事件驱动的特性以及相同或相似的函数等等。
这个特点使得程序开发和设计人员可以借鉴使用不同的Microsoft可视化工具开发的应用程序,并进行方便的移植,缩短开发周期。
同时。
【总页数】2页(P28-29)
【作者】姜军
【作者单位】哈尔滨国际信托投资公司技术部
【正文语种】中文
【中图分类】TP311
【相关文献】
1.用Visual Basic描述与实现数据结构中的单链表操作 [J], 陈向华;陈科
2.在Visual Basic中运用矩阵实现字符串的加密 [J], 周蓉
3.如何在Visual Basic中调用动态链接库实现ftp功能 [J], 王阳;王援;束玉
4.Visual Basic课程设计学生作品中的动画设计与实现 [J], 毛殚;陈明锐
5.Visual Basic中动态报表的实现 [J], 郑宾
因版权原因,仅展示原文概要,查看原文内容请购买。
vb 图像处理淡入淡出与45度旋转(2)
信息科学与工程学院《多媒体程序设计》课程考试说明书班级:学号:姓名:教师:杨岚二○一四年六月一、题目设计图像多种切换效果。
要求:1:必须有淡入、淡出、45。
逆时针翻转、45。
顺时针翻转等效果;2;设计下拉式菜单完成上述功能。
二、设计界面图一:设计界面三、运行界面图二:淡入效果图三:淡出效果图四:逆时针45°旋转.图五:顺时针45°旋转四、属性设置一)菜单编辑二)控件属性设置控件名称属性名称属性值窗体Caption 图像切换效果展示BackColor &H00FEBFBA&Startupposition 2-屏幕中心ScaleMode 3 - Pixel图片框控件1 AutoRedraw TureAutuSize TureScaleMode 3 - Pixel图片框控件2 AutoRedraw TureAutuSize FalseBackColor &H8000000F&ScaleMode 3 - Pixel定时器timer1 interval 100Enabled Ture定时器timer interval 100Enabled Ture命令按钮Name clearCaption 清除五、代码1.选择菜单 Project | Add Module 添加一个模块到工程中,在其中输入以下代码:2.Form1通用段代码3.窗体加载4.淡入效果按钮5.淡出效果按钮6.逆时针45°旋转7.顺时针45°旋转8.清除按钮9.退出按钮六、考试小结VB程序设计的入门学习并不难,但却是一个十分重要的过程,因为程序设计思想的形成,以及之前学习积累的经验,很快就对VB有了一定的了解。
下面就是我这段时间学习的新的与体会。
我认为作为学习程序设计最重要的一点是要注重理解一些重要的概念.VB程序设计本身并不复杂,翻开一本程序设计学习的书籍,看到的无非就是变量,函数,条件语句,循环语句等概念.但要真正能进行程序设计,需要深入理解这些概念.因此,在程序入门阶段还是应该重视概念的学习。
VB.NET编程之透明窗体篇
编程之透明窗体篇虽然和VB在语法上有很多相同之处,但从根本上说,不仅仅是VB的另外一个升级版本,而是一个全新的语言。
全面支持面向对象,在中哪怕是一个字符串,你也都可以把它看成是一个对象,一个实例,也有自己的属性和方法。
同样中程序窗体(Form)也是一个实例,它是由命名空间“System.Windows.Forms”中的“Form”类通过构造函数而成的一个实例。
下面试着用来编写与窗体相关的程序。
利用来定制窗体的透明度在下面介绍的程序中,将通过调整TrackBar组件的数值来调整窗体的透明程度。
定制透明的窗体,如果要用其他语言来实现,一定是件很复杂的工作,但对于来说,则是一件非常简单的事情,这是因为在.Net FrameWork SDK的“Form”类中,提供了一个可以设定窗体透明度的属性“Opacity”,当“Opacity”属性值为“1”,说明窗体不透明,当“Opacity”为“0”,则窗体完全透明。
构造整个程序的主要思路就是:首先要继承一个Form对象,程序中名称为Form1,然后创建一个TrackBar组件和一个Label组件,并进行初始化,Label组件的名称为Label1,主要是显示当前窗体的透明度数值。
接着定义各组件相关事件,程序中只有一个TrackBar1的“Scroll”事件,并在Form1中加入这些可视组件,这样组件才能显示出来。
最后提供的程序入口函数“Main”来运行这个程序。
下面在中通过TrackBar1来定制窗体透明度的完整程序代码(Form.vb):Imports System.Windows.FormsImports ponentModel‘继承得到一个窗体Public Class Form1Inherits System.Windows.Forms.Form#Region " Windows 窗体设计器生成的代码 "Public Sub New ( )MyBase.New ( )‘该调用是 Windows 窗体设计器所必需的。
淡入淡出效果的图片提示特效代码
</body>
</html>
�
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>淡入淡出效果的图片提示特效代码</title>
<SCRIPT>
var intTimeStep=20;
var isIe=(window.ActiveXObject)?true:false;
if (curSObj.filters.alpha.opacity>0) {
setTimeout('setObjClose()',intTimeStep);}
else {curSObj.style.display="none";}
}else{
curOpacity-=intAlphaStep;
<body>
<table width=80%><tr><td>效果一:手动控制展现或消失<br><input type=button onclick="startObjVisible('objDiv');if(this.value=='点击展现'){this.value='点击隐藏'}else{this.value='点击展现'}" value="点击展现"></td>
网页淡入淡出、防右键复制、淡入淡出效果代码小胡博客
网页淡入淡出、防右键复制、淡入淡出效果代码小胡博客在网页开发中我们可能为完成一些特效感到苦恼,特别是JS 不好的孩子们,下面整理的一些方法能使你起到事倍功半的效果。
进入网页时淡入淡出的效果1 <meta http-equiv=“Page -Exit”;content=“blendTrans(Duration=1.0)”> 在头部head 之间加入此代码,你会发现点击链接的时候,网页现实的是淡入淡出的效果。
此代码含义如下:Page-Exit”(离开网页)、”Site - Enter”(进入站点)、”Site -Exit”(离开站点)其中”Duration=1.0″可以设定每个周期的时间为多久,单位是秒(现在设置的是 每周期1秒)。
彻底屏蔽鼠标右键此段代码加入<body>区域。
1 <body oncontextmenu=“window.event.returnValue=false”>此段代码加入<body>区域将取消选取、防止复制。
1 <body onselectstart=“return false”>此段代码加入区域可以禁止粘贴。
1 <body onpaste=“return false”>脚本永不出错如果您的浏览器提示您的网址JS 脚本出错,但检测了一遍没发现错误,就可以使用一下代码:1 <SCRIPT LANGUAGE=“JavaScript”><!– Hide function killErrors() {return true;} window.onerror = killErrors; // –> </SCRIPT> 在规定时间内跳转意思就是5秒后自动跳转到该页面下,适合做404网页。
1 <META http-equiv=V=“REFRESH” content=“5;URL=”>防止复制此段代码加入<body>区域1 <body oncopy=“return false;” oncut=“return false;”>防止被人frame有些网址导航站收录您的网址之后,不会直接跳转到你的网站,而是加载到他的网页中,这样不会给你的网站产生任何IP 和PV 。
轻弹窗口源代码(vb)
'设置窗口透明度;两个参数:窗口句柄,透明度Public Sub SetFormAlpha(ByV al hwnd As Long, ByVal Alpha As Integer)Dim info As LongIf hwnd = 0 Then Exit SubIf Alpha >= 0 And Alpha <= 225 Theninfo = GetWindowLong(hwnd, GWL_EXSTYLE)SetWindowLong hwnd, (-20), info Or &H80000SetLayeredWindowAttributes hwnd, 0, Alpha, &H2 End IfEnd Sub'开启窗口动画:窗口对象,窗口句柄,缩放比,平滑度Public Sub showwindow(ByVal Form As Object, ByV al hwnd As Long, ByVal zoomra As Double, ByV al value As Integer)Dim esh%, esw%, sh%, sw%, i% '定义变量sh = Form.Height: sw = Form.Width '赋值esh = sh * zoomra: esw = sw * zoomra '末值=初值*缩放比For i = 1 To valueForm.Move Form.Left - (esw - sw) / 2 / value, Form.Top - (esh - sh) / 2 / value, _Form.Width + (esw - sw) / value, Form.Height +(esh - sh) / value '改变窗口大小并使窗口始终位于屏幕中心SetFormAlpha hwnd, i * (225 / value) '同时改变窗口透明度DoEvents '解决窗口在被改变大小和透明度时变黑的问题NextFor i = 1 To value * 0.8 '此循环是缩小窗口循环Form.Move Form.Left + 200 / 2 / value, Form.Top + 200 / 2 / value, Form.Width - 200 / value, Form.Height - 200 / valueDoEventsNextEnd Sub'关闭窗口动画:窗口对象,窗口句柄,缩放比,平滑度Public Sub closewindow(ByVal Form As Object, ByV al hwnd As Long, ByVal zoomra As Double, ByV al value As Integer)Dim ech%, ecw%, ch%, cw%, i1% '定义变量ch = Form.Height: cw = Form.Width '赋值ech = ch * zoomra: ecw = cw * zoomra '末值=初值*缩放比For i1 = 1 To valueForm.Move Form.Left + (cw - ecw) / 2 / value, Form.Top + (ch - ech) / 2 / value, Form.Width - (cw - ecw) / value, Form.Height - (ch - ech) / value '改变窗口大小并使窗口始终位于屏幕中心SetFormAlpha Me.hwnd, 225 - i1 * (225 / value) '同时改变窗口透明度DoEvents '解决窗口在被改变大小和透明度时变黑的问题NextEnd Sub'///////////////////////////////////////////////////////////////////////////////////////////////////以上是通用过程Private Sub Form_Load()Form1.Visible = False '使窗口不可视SetFormAlpha Me.hwnd, 0 '把窗口设置为完全透明Form1.Visible = True '窗口属性设置为可视,但由于窗口不透明度为0,实际上窗口仍然不可视showwindow Form1, Me.hwnd, 1.09, 7 '调用开启窗口动画End SubPrivate Sub Form_Unload(Cancel As Integer)closewindow Form1, Me.hwnd, 0.87, 7 '调用关闭窗口动画End Sub通用模块:Declare Function SetWindowLong Lib "user32" _Alias "SetWindowLongA" _(ByV al hwnd As Long, _ByV al nIndex As Long, _ByV al dwNewLong As Long) _As LongDeclare Function GetWindowLong Lib "user32" _Alias "GetWindowLongA" ( _ByV al hwnd As Long, _ByV al nIndex As Long) _As LongDeclare Function SetLayeredWindowAttributes Lib "user32" ( _ByV al hwnd As Long, _ByV al crKey As Long, _ByV al bAlpha As Long, _ ByV al dwFlags As Long) _ As Long。
VB实例1 窗体操作
实例1 窗体操作“窗体操作”程序运行后,在屏幕的的中央显示一个窗体,窗体的画面如下图所示。
单击窗体中的“向左移动”按钮,可以使窗体向左移动;单击“向右移动”按钮,可以使窗体向右移动:单击“向下移动一按钮,可以使窗体向下移动;击“向上移动”按钮,可以使窗体向上移动;单击“最小化”按钮,可以使窗体最小化,在Windows的状态栏中显示程序最小化后的按钮(按钮上有最小化图标),单击“最大化”按钮,可以使窗体最大化,此时窗体没有边框;单击“正常”按钮,可以使窗体恢复起始状态,窗体有边框,单出“退出E”按钮或者按Alt+E键,可以关闭窗体,结束程序。
(1)实例1中共有10个对象,窗体的名称为Form1,标签的名称为Label1,8个按钮的名称分别是:Command1,Command2、Command3、Command4,Command5、Command6、Command7、Command8。
它们的Caption属性设置见表。
实例1中各对象的Caption属性设置其中,Command8按钮的Caption值为“退出&E”,表示按钮的标题为“退出&E”,按Alt+E键和单击该按钮的作用一样。
(2)单击选中窗体,在其属性栏内。
单击Picture属性值右边的箭头按钮,调出“加载图片”对话框。
然后,选择一个图像文件,单击“打开”按钮,给窗体设置一幅背景图像。
再将窗体的StartUpPosition属性设置为“2-屏幕中间”,使窗体在屏幕中间显示。
(3)单击选中标签对象Label1,在其属性栏内,再单击BackColor属性值右边的箭头按钮,弹出调色板。
利用该调色板设置标签的背景色为黄色。
(4)单击ForeColor属性值右边的箭头按钮,弹出调色板。
利用该调色板设置标签的文字颜色为红色。
单击Font属性值右边处的箭头按钮,弹出“字体”对话框,利用该对话框,设置字体为宋体,字大小为16号,字形为粗体。
然后单击“确定”按钮,完成字体设置,退出“字体”对话框。
vb6 操作mdi子窗体的方法
VB6(Visual Basic 6.0)是微软推出的一种编程语言,它具有结构清晰、易学易用的特点,因此在开发Windows应用程序时被广泛使用。
MDI(Multiple Document Interface)是VB6中常用的一种界面类型,它允许用户在一个父窗体中打开多个子窗体,并且可以方便地在这些子窗体之间进行切换和管理。
在MDI应用程序中操作子窗体是非常常见的需求,如何在VB6中操作MDI子窗体呢?接下来,我们将介绍一些操作MDI子窗体的方法。
一、创建MDI子窗体在VB6中创建MDI子窗体非常简单,只需要在MDI父窗体中添加一个新的子窗体即可。
我们需要在VB6中创建一个MDI项目,然后在MDI父窗体的工具栏中点击“新建子窗体”按钮或者通过编程方式调用"Load"方法来创建一个新的MDI子窗体。
二、操作MDI子窗体的属性和方法在VB6中,我们可以通过操作MDI子窗体的属性和方法来实现对子窗体的管理和控制。
通过设置MDI子窗体的Visible属性可以控制子窗体的显示和隐藏;通过设置MDI子窗体的Title属性可以修改子窗体的标题;通过调用MDI子窗体的Close方法可以关闭子窗体等等。
三、切换和激活MDI子窗体在MDI应用程序中,切换和激活子窗体是非常常见的操作。
在VB6中,我们可以通过调用MDI父窗体的ActiveForm属性来获取当前激活的子窗体,并通过调用MDI子窗体的Activate方法来激活指定的子窗体。
另外,我们还可以通过在MDI父窗体的窗口菜单或者工具栏中添加相应的菜单项或按钮来实现切换和激活子窗体的功能。
四、动态创建和销毁MDI子窗体除了在设计时创建MDI子窗体外,我们还可以在运行时动态地创建和销毁MDI子窗体。
在VB6中,我们可以通过编程方式调用"Load"方法来动态创建新的MDI子窗体,然后通过调用MDI子窗体的Unload 方法来销毁不再需要的子窗体。
VB利用API函数实现图像淡入淡出
VB利用API函数实现图像淡入淡出(2008-11-07 23:18:40)标签:vb api图像淡入淡出it分类:VB 一般传统的实现两个PictureBox之间图像的淡入淡出效果都需要使用大量的API函数并进行复杂的调色板以及绘图设备(Device Context)的操作。
但是在Win98、Win2000中,微软提供了支持透明图像拷贝的AlphaBlend函数。
这篇文章就介绍如何通过API函数AlphaBlend实现PictureBox之间图像的淡入淡出效果。
AlphaBle nd函数的定义在msimg32.dll中,一般Win98、Win2000都带了这个库,在编程之前你可以先察看一下该文件是否存在。
打开VB建立一个新工程。
选择菜单 Project | Add Module 添加一个模块到工程中,在其中输入以下代码:Public Type rBlendPropstBlendOp As BytetBlendOptions As BytetBlendAmount As BytetAlphaType As ByteEnd TypePublic Declare Function AlphaBlend Lib "msimg32" (ByVal hDestDC As Long, _ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, _ByVal nHeight As Long, ByVal hSrcDC As Long, _ByVal xSrc As Long, ByVal ySrc As Long, ByVal widthSrc As Long, _ByVal heightSrc As Long, ByVal blendFunct As Long) As BooleanPublic Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" _(Destination As Any, Source As Any, ByVal Length As Long)大家可以看到,AlphaBlend函数的定义同普通的复制函数Bitblt很相似,只是最后的参数blendFun ct定义为一个rBlendProps结构。
DELPHI用两种方法快速简单的实现窗口淡入淡出
在应用程序中引入图片淡入及淡出,可以让用户界面更加美观。
以前报刊杂志中介绍的常用方法有两种:一是自己写程序,诸个象素进行混合渐变;二是使用DirectX,建立一个带Alpha通道的Surface。
第一种,效果可以自己控制,但比较麻烦,而且一般不容易生成硬件优化的代码;第二种速度很快,却需要使用DirectX库。
本文结合Delphi实例代码,介绍两种简单快速的实现方法,算是一个总结吧,希望能对初学者有所帮助。
一:AnimateWindow函数的使用:(一)函数原型:(二)参数设置:hwnd :用“窗体名.handle”即可,如:Form1.handle;dwTime:一般情况下用400比较合适,我偏向于1000;dwFlags:可以设为多种效果,详见MSDN,这里我只介绍淡入淡出用到的参数AW_BLEND;如果是淡入,设为AW_BLEND即可,如果是淡出,设为AW_BLEND or AW_HIDE。
(三)程序实例:新建一个工程,在生成的窗体Form1上添加一个按钮Button1,Button1的Caption设为“淡出”;接下来添加如下两段代码,实现淡入淡出:1、淡入:双击Form1,在其“OnCreate”事件中添加:2、淡出:双击Button1,在其“OnClick”事件中添加:整个程序的procedure如下:二、AlphaBlend属性结合Timer组件:(一)原理:在Delphi6.0以上(6.0以下我不了解),每个窗体有AlphaBlend属性和AlphaBlendValue 属性,将AlphaBlend属性设为True,然后在Timer组件中随着时间改变AlphaBlendValue的值(0-255)即可。
(二)程序实例:新建一个工程,并添加一个窗体Form2,将其AlphaBlend属性设置为True;在窗体Form1上添加一个按钮Button1,Caption属性设为“淡入”,在Form2上添加一个按钮Button1,Caption 属性设为“淡出”;另外,在Form2上添加两个Timer组件Timer1、Timer2,将它们的Interval 属性设为3(越大动画时间越长),Enable设为False;接下来添加如下4段代码:1、双击Form1上的Button1,在其“OnCreate”事件中添加:2、双击Form2上的Button1,在其“OnCreate”事件中添加:Timer2.Enabled:=true; //启动Timer2,控制窗体可见度-减少3、双击Form2上的Timer1,在其“OnTimer”事件中添加:4、双击Form2上的Timer2,在其“OnTimer”事件中添加:。
窗体淡入浅出的效果
在一个窗体中加入一个按钮,来实现要淡入淡出效果的窗体的显示private void button1_Click(object sender, EventArgs e){frm渐变窗体frm = new frm渐变窗体();frm.ShowDialog();}在要实现渐变效果的窗体中需要放置两个Timer来实现淡入和淡出效果,在此例中使用Timer1来实现淡入效果,Timer2实现淡出效果。
淡入淡出窗体代码using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;namespace 特效窗体{public partial class frm渐变窗体: Form{//指定窗体完全透明private double m_CurrentOpacity = 0;public frm渐变窗体(){InitializeComponent();this.Opacity = this.m_CurrentOpacity;}/// <summary>/// 显示窗体的Timer/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void timer1_Tick(object sender, EventArgs e){if (this.m_CurrentOpacity < 1){//如果当前的透明度小于1,则继续增加透明度this.m_CurrentOpacity += 0.05;this.Opacity = this.m_CurrentOpacity;}else{//如果当前已经完全不透明,则停止timerthis.timer1.Stop();this.timer1.Enabled = false;}}/// <summary>/// 窗体关闭渐变效果/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void frm渐变窗体_FormClosing(object sender, FormClosingEventArgs e){//****************//在关闭窗体时有可能打开效果还没有完全透明,所以需要先关闭显示窗体的timer this.timer1.Stop();this.timer1.Enabled = false;//****************if (this.m_CurrentOpacity > 0){//如果当前的透明度>0,则打开降低透明度的Timer2e.Cancel = true;this.timer2.Enabled = true;this.timer2.Start();}}/// <summary>/// 降低透明度/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void timer2_Tick(object sender, EventArgs e){if (this.m_CurrentOpacity > 0){//如果当前的透明度>0,则降低透明度this.m_CurrentOpacity -= 0.05;this.Opacity = this.m_CurrentOpacity;}else{//如果完全不透明,则关闭降低透明度timer,且关闭窗体this.timer2.Stop();this.timer2.Enabled = false;this.Close();}}}}。
VB教程---窗体和简单的输入输出
设置启动窗体
指定启动窗体
多个窗体的应用程序必须指定一个启动窗体。
默认情况下是第一个创建的窗体。 – 在“工程”菜单中,选“工程属性” – 选“通用”选项卡 – 在“启动”列表框中,选中所要窗体
使用Sub Main – 在标准模块(.bas)中定义主过程Main Sub Main() …. End Sub – 在“启动”列表框中,选中“Sub Main”
MsgBox("显示三个按钮,让用户进行选择!",2,"信息提示")
MsgBox("显示两个按钮,让用户进行选择,并出现问号!", 4 + 32, "信息提示")
2021/3/6
MsgBox示例程序
Visual Basic程序设计
23
MsgBox函数的返回值对应七种按钮
返回常量 vbOK vbCancel vbAbort vbRetry vbIgnore vbYes vbNo
Form1_Activate() MsgBox “Activate事件发生!”
End Sub
4. Deactivate事件 窗体处于非活动状态。
课堂示例3-0
2021/3/6
Visual Basic程序设计
8
5. QueryUnload事件
cancel -设置为非零值,可停止窗体的关闭
Unloadmode(选讲) 一个值或一个常数,如返回值中所描述的,它指示引起 QueryUnload 事件的原因。参数返回下列值:ຫໍສະໝຸດ vbRetryCancel
5 显示Retry和Cancel按钮
VbCritical
16 显示停止图标“×”
VB6.0实现将窗体最小化到托盘区
VB6.0实现将窗体最小化到托盘区1、新建立一个VB6工程,将Form1的ShowInTaskBar属性设置为False2、菜单:工程--添加模块按“打开”这样就添加了一个新模块,名为Module1,保存为Module1.bas3、在Module1中写下如下代码:Option ExplicitPublic Const MAX_TOOLTIP As Integer = 64Public Const NIF_ICON = &H2Public Const NIF_MESSAGE = &H1Public Const NIF_TIP = &H4Public Const NIM_ADD = &H0Public Const NIM_DELETE = &H2Public Const WM_MOUSEMOVE = &H200Public Const WM_LBUTTONDOWN = &H201Public Const WM_LBUTTONUP = &H202Public Const WM_LBUTTONDBLCLK = &H203Public Const WM_RBUTTONDOWN = &H204Public Const WM_RBUTTONUP = &H205Public Const WM_RBUTTONDBLCLK = &H206Public Const SW_RESTORE = 9Public Const SW_HIDE = 0Public nfIconData As NOTIFYICONDATAPublic Type NOTIFYICONDATAcbSize As LonghWnd As LonguID As LonguFlags As LonguCallbackMessage As LonghIcon As LongszTip As String * MAX_TOOLTIPEnd TypePublic Declare Function ShowWindow Lib "user32" (ByVal hWnd As Long, ByVal nCmdShow As Long) As LongPublic Declare Function Shell_NotifyIcon Lib "shell32.dll" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, lpData As NOTIFYICONDATA) As Long'4、在Form1的Load事件中写下如下代码:Private Sub Form_Load()'以下把程序放入System Tray====================================Syst em Tray BeginWith nfIconData.hWnd = Me.hWnd.uID = Me.Icon.uFlags = NIF_ICON Or NIF_MESSAGE Or NIF_TIP.uCallbackMessage = WM_MOUSEMOVE.hIcon = Me.Icon.Handle'定义鼠标移动到托盘上时显示的Tip.szTip = App.Title + "(版本 " & App.Major & "." & App.Minor & "." & App.Revision & ")" & vbNullChar.cbSize = Len(nfIconData)End WithCall Shell_NotifyIcon(NIM_ADD, nfIconData)'====================================== =======================System Tray End Me.HideEnd Sub'5、在Form1的QueryUnload事件中写入如下代码:Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)Call Shell_NotifyIcon(NIM_DELETE, nfIconData)End Sub'6、在Form1的MouseMove事件中写下如下代码:Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)Dim lMsg As SinglelMsg = X / Screen.TwipsPerPixelXSelect Case lMsgCase WM_LBUTTONUP'MsgBox "请用鼠标右键点击图标!", vbInformation, "实时播音专家"'单击左键,显示窗体ShowWindow Me.hWnd, SW_RESTORE'下面两句的目的是把窗口显示在窗口最顶层'Me.Show'Me.SetFocus'' Case WM_RBUTTONUP'' PopupMenu MenuTray '如果是在系统Tray图标上点右键,则弹出菜单MenuTray'' Case WM_MOUSEMOVE'' Case WM_LBUTTONDOWN'' Case WM_LBUTTONDBLCLK'' Case WM_RBUTTONDOWN'' Case WM_RBUTTONDBLCLK'' Case ElseEnd SelectEnd Sub7、现在将程序保存起来运行看看系统托盘处是否增加了一个本工程的图标。
文字逐渐消失的代码
文字逐渐消失的代码
文字逐渐消失的代码可以通过编程实现,以下是一个使用Excel VBA的实例教程:
1. 文字编辑:在文本框中输入想要展示的文字,并调整文字字体、大小及颜色属性。
2. 命令按钮添加:在表格中插入命令按钮。
3. 命令按钮代码添加:进入VBE界面,在CommandButton1被点击时所对应的子过程中输入相应代码。
此代码使用单精度实数i代表文字透明度,i初始值为1(文字透明度为100%),进入循环后i值每次循环减少0.002,直到i值被减至0导致循环条件(i>0)被破坏,循环停止。
整个循环过程即是文字透明度逐渐降低的过程,文字会逐步被显示出来。
4. 执行代码:返回前台界面,点击命令按钮即可执行文字渐出效果。
你可以根据自己的需求调整代码中的参数,以实现不同的文字渐出效果。
如果你对编程不太熟悉,可以参考相关的教程或寻求专业人士的帮助。
VB实现窗体淡入淡出代码
VB实现窗体淡入淡出代码首先你得有个FORM1,然后添加一个模块,写入下面:Const GWL_WNDPROC = (-4)Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" ( _ByVal hWnd As Long, _ByVal nIndex As Long) As LongPrivate Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" ( _ByVal hWnd As Long, _ByVal nIndex As Long, _ByVal dwNewLong As Long) As LongConst PROP_PREVPROC = "PrevProc"Const PROP_FORM = "FormObject"Private Declare Function SetProp Lib "user32" Alias "SetPropA" ( _ByVal hWnd As Long, _ByVal lpString As String, _ByVal hData As Long) As LongPrivate Declare Function GetProp Lib "user32" Alias "GetPropA" ( _ByVal hWnd As Long, _ByVal lpString As String) As LongPrivate Declare Function RemoveProp Lib "user32" Alias "RemovePropA" ( _ByVal hWnd As Long, _ByVal lpString As String) As LongPrivate Declare Sub MoveMemory Lib "kernel32" Alias "RtlMoveMemory" ( _Dest As Any, _Src As Any, _ByVal DestL As Long)Const WM_PRINTCLIENT = &H318Private Type RECTLeft As LongTop As LongRight As LongBottom As LongEnd TypePrivate Declare Function GetClientRect Lib "user32" ( _ByVal hWnd As Long, _lpRect As RECT) As LongPrivate Declare Function apiOleTranslateColor Lib "oleaut32" Alias "OleTranslateColor" ( _ByVal lOleColor As Long, _ByVal lHPalette As Long, _lColorRef As Long) As LongEnum AnimateWindowFlagsAW_HOR_POSITIVE = &H1AW_HOR_NEGATIVE = &H2AW_VER_POSITIVE = &H4AW_VER_NEGATIVE = &H8AW_CENTER = &H10AW_HIDE = &H10000AW_ACTIVATE = &H20000AW_SLIDE = &H40000AW_BLEND = &H80000End EnumPrivate Declare Function apiAnimateWindow Lib "user32"Alias "AnimateWindow" ( _ByVal hWnd As Long, _ByVal dwTime As Long, _ByVal dwFlags As Long) As LongPrivate Declare Function MulDiv Lib "kernel32" ( _ByVal Mul As Long, _ByVal Nom As Long, _ByVal Den As Long) As LongPrivate Declare Function CreateSolidBrush Lib "gdi32" ( _ByVal crColor As Long) As LongPrivate Declare Function BitBlt Lib "gdi32" ( _ByVal hDestDC As Long, _ByVal x As Long, _ByVal y As Long, _ByVal nWidth As Long, _ByVal nHeight As Long, _ByVal hSrcDC As Long, _ByVal xSrc As Long, _ByVal ySrc As Long, _ByVal dwRop As Long) As LongPrivate Declare Function GetDC Lib "user32" ( _ByVal hWnd As Long) As LongPrivate Declare Function CreateCompatibleDC Lib "gdi32" ( _ ByVal hDC As Long) As LongPrivate Declare Function ReleaseDC Lib "user32" ( _ByVal hWnd As Long, _ByVal hDC As Long) As LongPrivate Declare Function DeleteDC Lib "gdi32" ( _ByVal hDC As Long) As LongPrivate Declare Function FillRect Lib "user32" ( _ByVal hDC As Long, _lpRect As RECT, _ByVal hBrush As Long) As LongPrivate Declare Function DeleteObject Lib "gdi32" ( _ByVal hObject As Long) As LongPrivate Declare Function SelectObject Lib "gdi32" ( _ByVal hDC As Long, _ByVal hObject As Long) As LongPrivate Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" ( _ByVal lpPrevWndFunc As Long, _ByVal hWnd As Long, _ByVal Msg As Long, _ByVal wParam As Long, _ByVal lParam As Long) As Long''注释:''注释: AnimateWindow''注释:''注释: Wrapper for AnimateWindow api'注释:Sub AnimateWindow( _ByVal Form As Form, _ByVal dwTime As Long, _ByVal dwFlags As AnimateWindowFlags)'注释: Set the propertiesSetProp Form.hWnd, PROP_PREVPROC, GetWindowLong(Form.hWnd, GWL_WNDPROC)SetProp Form.hWnd, PROP_FORM, ObjPtr(Form)'注释: Subclass the windowSetWindowLong Form.hWnd, GWL_WNDPROC, AddressOf AnimateWinProc'注释: Call AnimateWindow APIapiAnimateWindow Form.hWnd, dwTime, dwFlags'注释: Unsubclass the windowSetWindowLong Form.hWnd, GWL_WNDPROC, GetProp(Form.hWnd, PROP_PREVPROC)'注释: Remove the propertiesRemoveProp Form.hWnd, PROP_FORMRemoveProp Form.hWnd, PROP_PREVPROC'注释: Refresh the formForm.RefreshEnd Sub'注释:'注释: AnimateWinProc'注释:'注释: Window procedure for AnimateWindow'注释:Private Function AnimateWinProc( _ByVal hWnd As Long, _ByVal Msg As Long, _ByVal wParam As Long, _ByVal lParam As Long) As LongDim lPrevProc As LongDim lForm As LongDim oForm As Form'注释: Get the previous WinProc pointerlPrevProc = GetProp(hWnd, PROP_PREVPROC)'注释: Get the form objectlForm = GetProp(hWnd, PROP_FORM)MoveMemory oForm, lForm, 4&Select Case MsgCase WM_PRINTCLIENTDim tRect As RECTDim hBr As Long'注释: Get the window client sizeGetClientRect hWnd, tRect'注释: Create a brush with the'注释: form background colorhBr = CreateSolidBrush(OleTranslateColor(oForm.BackColor)) '注释: Fill the DC with the'注释: background ColorFillRect wParam, tRect, hBr'注释: Delete the brushDeleteObject hBrIf Not oForm.Picture Is Nothing ThenDim lScrDC As LongDim lMemDC As LongDim lPrevBMP As Long'注释: Create a compatible DClScrDC = GetDC(0&)lMemDC = CreateCompatibleDC(lScrDC)ReleaseDC 0, lScrDC'注释: Select the form picture in the DClPrevBMP = SelectObject(lMemDC, oForm.Picture.Handle)'注释: Draw the picture in the DCBitBlt wParam, _0, 0, _HM2Pix(oForm.Picture.Width),HM2Pix(oForm.Picture.Height), _lMemDC, 0, 0, vbSrcCopy'注释: Release the pictureSelectObject lMemDC, lPrevBMP'注释: Delete the DCDeleteDC lMemDCEnd IfEnd Select'注释: Release the form objectMoveMemory oForm, 0&, 4&'注释: Call the original window procedureAnimateWinProc = CallWindowProc(lPrevProc, hWnd, Msg, wParam, lParam)End Function'注释:'注释: HM2Pix'注释:'注释: Converts HIMETRIC to Pixel'注释:Private Function HM2Pix(ByVal Value As Long) As LongHM2Pix = MulDiv(Value, 1440, 2540) / Screen.TwipsPerPixelX End Function'注释:'注释: OleTranslateColor'注释:'注释: Wrapper for OleTranslateColor API'注释:Private Function OleTranslateColor(ByVal Clr As Long) As LongapiOleTranslateColor Clr, 0, OleTranslateColorEnd Function...........................................................................在form1的unload里面写入Private Sub Form_Unload(Cancel As Integer)AnimateWindow Me, 1000, &H80000 + &H10000Set Form1 = NothingEnd Sub...............................运行,关闭看看特效。
在VFP中实现字符的淡出淡入
在VFP中实现字符的淡出淡入字符淡出淡入效果是指字符从背景色中渐渐显示出来,或渐渐隐入其中,如果我们能够在软件的封面上加入此功能,或作软件的说明, 定能为软件增色不少。
笔者利用Visual FoxPro(以下简称VFP)这种常用的数据库开发语言,编写了一段程序,实现了该功能。
我们知道,色彩是由三原色(红、绿、蓝)组成,三原色的比例不同 ,所配置出的颜色就会不同。
在现实生活中,三原色中每种色彩的变化是连续的,因此可以组合出无穷色彩;而在计算机中,色彩的变化是数字化的,即离散非连续的,变化范围从0~255,共256种情况,因此我们只要控制三原色的变化量,就可以调配出所需要的色彩。
如果我们可以连续控制三原色的变化量,就可以实现色彩的连续变化。
VFP中有一个函数RGB(),该函数可以指定三原色的比例,返回单一的色彩值。
该返回值可作为其它控件的前景色或背景色的值,即可赋予控件的forecolor或backcolor属性。
该函数声明如下:RGB(nRedValue,nGreenValue,nBlueValue)其中nRedValue、nGreenValue、nBlueValue分别代表红、绿、蓝成份的强度,其大小变化范围是0~255;同时,VFP还提供了一个功能强大的控件——定时器,它可以按指定的时间执行一指定的操作,操作完成后,仍把控制权交给CPU完成其它工作。
我们利用这两个工具就可以实现字符的淡出淡入。
现将具体步骤说明如下:1.启动VFP,并生成一个空白的表单。
2.将表单的backcolor属性设置为192、192、192,即表单的背景色设为灰色。
3.在表单的Init过程中写入以下代码:public r,g,br=192g=192b=1924.在表单的Click过程中写入以下代码:thisform.starttimer.enabled=.f.thisform.endtimer.enabled=.t.5.在表单中加入一个标鉴控制,并设置其属性如下: BackStyle: 0,表示透明Caption : 养老保险基金管理系统Forecolor: 192,192,192Name : label1FontSize : 206.在表单中加入一个定时器控制,并设置其属性如下: Interval : 80Name :starttimer在timer过程中加入以下代码:if r 255r=r+1endifif b 255b=b+1endifif g 255g=g+1endifble1.forecolor=rgb(r,g,b) thisform.refresh()7.在表单中再加入一个定时器控件,并设置其属性如下: Enabled : .f.,即假Interval : 5name: endtimer在Timer过程中加入以下代码:if r 192r = r-1endifif b 192b = b-1endifif g 192g=g-1endifbel1.forecolor=rgb(r,g,b)thisform.refresh()完成以上步骤后,将表单存盘并运行,可以看到屏幕上出现一个灰色背景的窗口,窗口内从灰色到红色渐渐出现"养老保险基金管理系统"的汉字,实现了淡入;在窗口内按一下鼠标左键,可以看到汉字从红色到灰色渐渐隐入到背景中去,实现了淡出。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
lpRect As RECT) As Long
Private Declare Function apiOleTranslateColor Lib "oleaut32" Alias "OleTranslateColor" ( _
Private Declare Function GetProp Lib "user32" Alias "GetPropA" ( _
ByVal hWnd As Long, _
ByVal lpString As String) As Long
Private Declare Function RemoveProp Lib "user32" Alias "RemovePropA" ( _
ByVal hDC As Long) As Long
Private Declare Function FillRect Lib "user32" ( _
ByVal hDC As Long, _
lpRect As RECT, _
ByVal hBrush As Long) As Long
ByVal hWnd As Long, _
ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" ( _
ByVal lpPrevWndFunc As Long, _
ByVal hWnd As Long, _
ByVal Msg As Long, _
ByVal wParam As Long, _
ByVal lParam As Long) As Long
''注释:
''注释: AnimateWindow
Private Declare Function DeleteObject Lib "gdi32" ( _
ByVal hObject As Long) As Long
Privat
e Declare Function SelectObject Lib "gdi32" ( _
首先你得有个FORM1,然后添加一个模块,写入下面:
Const GWL_WNDPROC = (-4)
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" ( _
'注释: form background color
hBr = CreateSolidBrush(OleTranslateColor(oForm.BackColor))
'注释: Fill the DC with the
'注释: background Color
Select Case Msg
Case WM_PRINTCLIENT
Dim tRect As RECT
Dim hBr As Long
'注释: Get the window client size
GetClientRect hWnd, tRect
'注释: Create a brush with the
ByVal hWnd As Long, _
ByVal nIndex As Long, _
ByVal dwNewLong As Long) As Long
Const PROP_PREVPROC = "PrevProc"
Const PROP_FORM = "FormObject"
ByVal ySrc As Long, _
ByVal dwRop As Long) As Long
Private Declare Function GetDC Lib "user32" ( _
ByVal hWnd As Long) As Long
Private Declare Function CreateCompatibleDC Lib "gdi32" ( _
SetWindowLong Form.hWnd, GWL_WNDPROC, AddressOf AnimateWinProc
'注释: Call AnimateWindow API
apiAnimateWindow Form.hWnd, dwTime, dwFlags
'注释: Unsubclass the window
SetWindowLong Form.hWnd, GWL_WNDPROC, GetProp(Form.hWnd, PROP_PREVPROC)
'注释: Remove the properties
RemoveProp Form.hWnd, PROP_FORM
RemoveProp Form.hWnd, PROP_PREVPROC
ByVal hDestDC As Long, _
ByVal x As Long, _
ByVal y As Long, _
ByVal nWidth As Long, _
ByVal nHeight As Long, _
ByVal hSrcDC As Long, _
ByVal xSrc As Long, _
ByVal lOleColor As Long, _
ByVal lHPalette As Long, _
lColorRef As Long) As Long
Enum AnimateWindowFlags
AW_HOR_POSITIVE = &H1
AW_HOR_NEGATIVE = &H2
AW_VER_POSITIVE = &H4
AW_VER_NEGATIVE = &H8
AW_CENTER = &H10
AW_HIDE = &H10000
AW_ACTIVATE = &H20000
AW_SLIDE = &H40000
AW_BLEND = &H80000
Src As Any, _
ByVal DestL As Long)
Const WM_PRINTCLIENT = &H318
Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Private Declare Function GetClientRect Lib "user32" ( _
Private Declare Function CreateSolidBrush Lib "gdi32" ( _
ByVal crColor As Long) As Long
Private Declare Function BitBlt Lib "gdi32" ( _
ByVal hWnd As Long, _
ByVal Msg As Long, _
ByVal wParam As Long, _
ByVal lParam As Long) As Long
Dim lPrevProc As Long
Dim lForm As Long
Dim oForm As Form
Private Declare Function SetProp Lib "user32" Alias "SetPropA" ( _
ByVal hWnd As Long, _
ByVal lpString As String, _
ByVal hData As Long) As Long
ByVal hDC As Long, _
ByVal hObject As Long) As Long
Private Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" ( _
'注释: Get the previous WinProc pointer
lPrevProc = GetProp(hWnd, PROP_PREVPROC)
'注释: Get the form object
lForm = GetProp(hWnd, PROP_FORM)