当前位置:文档之家› vb实现托盘(含程序)

vb实现托盘(含程序)

vb实现托盘(含程序)
vb实现托盘(含程序)

VB托盘

我按照下面的方法建了一个VB程序,可是在我自己的电脑上可以托盘,但换了电脑在别人的电脑上运行就没有托盘了,怎么回事啊!

1、新建立一个VB6工程,将Form1的ShowInTaskBar属性设置为False

2、菜单:工程--添加模块按“打开”这样就添加了一个新模块,名为Module1,保存为Module1.bas

3、在Module1中写下如下代码:

Option Explicit

Public Const MAX_TOOLTIP As Integer = 64

Public Const NIF_ICON = &H2

Public Const NIF_MESSAGE = &H1

Public Const NIF_TIP = &H4

Public Const NIM_ADD = &H0

Public Const NIM_DELETE = &H2

Public Const WM_MOUSEMOVE = &H200

Public Const WM_LBUTTONDOWN = &H201

Public Const WM_LBUTTONUP = &H202

Public Const WM_LBUTTONDBLCLK = &H203

Public Const WM_RBUTTONDOWN = &H204

Public Const WM_RBUTTONUP = &H205

Public Const WM_RBUTTONDBLCLK = &H206

Public Const SW_RESTORE = 9

Public Const SW_HIDE = 0

Public nfIconData As NOTIFYICONDATA

Public Type NOTIFYICONDATA

cbSize As Long

hWnd As Long

uID As Long

uFlags As Long

uCallbackMessage As Long

hIcon As Long

szTip As String * MAX_TOOLTIP

End Type

Public Declare Function ShowWindow Lib "user32" (ByVal hWnd As Long, ByVal nCmdShow As Long) As Long

Public 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====================================System Tray Begin

With 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 With

Call Shell_NotifyIcon(NIM_ADD, nfIconData)

'=============================================================System Tray End

Me.Hide

End 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 Single

lMsg = X / Screen.TwipsPerPixelX

Select Case lMsg

Case 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 Else

End Select

End Sub

7、现在将程序保存起来运行看看系统托盘处是否增加了一个本工程的图标。单击此图标,Form1就自动弹出来了。

问题补充:

另外一台装了同样的VB,都事一样的系统啊。

Form1 的VB代码

Private bIsQuit As Boolean

Private Sub Form_Load()

bIsQuit = False

End Sub

Private Sub Form_Unload(Cancel As Integer)

If Not bIsQuit Then

Dim rc As Long

Dim OwnerhWnd As Long

' 让窗体不可见

Me.Visible = False

' 从任务管理器列表中移除

OwnerhWnd = GetWindow(Me.HWnd, GW_OWNER)

rc = ShowWindow(OwnerhWnd, SW_HIDE)

Call Icon_Add(Form1, Me.topmenu, Me.Timer1, Me.HWnd, "ICON Test", Me.Icon, 0)

Cancel = 1

Else

Cancel = 0

End If

End Sub

Private Sub mnuQuit_Click()

bIsQuit = True

Call Icon_Del(Me.HWnd, 0) '删除通知栏图标

Unload Me

End Sub

Private Sub mnuShow_Click()

Call Icon_Del(Me.HWnd, 0) '删除通知栏图标

Me.Show '调出窗口

Me.WindowState = 0

End Sub

Private Sub Timer1_Timer()

Call Common.procesSD

End Sub

Common模块代码

'Window消息处理函数,目的是: 窗口最小化到托盘时,程序自己处理消息

Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFun c As Long, ByVal HWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As L ong) As Long

Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal HWnd As Lon g, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long

Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal HWnd As Long, ByV al wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

'点击X时,最小化到托盘

Public Const SW_HIDE = 0

Public Const GW_OWNER = 4

Declare Function GetWindow Lib "user32" (ByVal HWnd As Long, ByVal wCmd As Long) As Lo ng

Declare Function ShowWindow Lib "user32" (ByVal HWnd As Long, ByVal nCmdShow As Lon g) As Long

'添加、删除、更改托盘图标 Windows API

Declare Function Shell_NotifyIcon Lib "shell32.dll" Alias "Shell_NotifyIconA" (ByVal dwMessag e As Long, lpData As NOTIFYICONDATA) As Long

Public Const DefaultIconIndex = 1 '图标缺省索引

Public Const WM_LBUTTONDOWN = &H201 '按鼠标左键

Public Const WM_RBUTTONDOWN = &H204 '按鼠标右键

Public Const WM_LBUTTONDBLCLK = &H203 '双击左键

Public Const WM_USER = &H400

Public Const TRAY_CALLBACK = (WM_USER + 1001&)

Public Const GWL_WNDPROC = (-4)

Public Const NIM_ADD = 0 '添加图标

Public Const NIM_MODIFY = 1 '修改图标

Public Const NIM_DELETE = 2 '删除图标

Public Const NIF_MESSAGE = 1 'message 有效

Public Const NIF_ICON = 2 '图标操作(添加、修改、删除)有效

Public Const NIF_TIP = 4 'ToolTip(提示)有效

Type NOTIFYICONDATA

cbSize As Long'需填入NOTIFYICONDATA数据结构的长度

HWnd As Long'设置成窗口的句柄

Uid As Long'为图标所设置的ID值

UFlags As Long'设置uCallbackMessage,hIcon,szTip是否有效

UCallbackMessage As Long'消息编号

hIcon As Long'显示在状态栏上的图标

SzTip As String * 64 '提示信息

End Type

'声明上述类型的对象

Private IconVa As NOTIFYICONDATA

'声明获取处理Windows 消息前的window句柄

Public OldWindowProc As Long

'判断单击,双击的两个标志

Private bIsSingle As Boolean

Private bIsDouble As Boolean

'声明主窗体,右键菜单和时钟,这里的时钟是为了区分单双击左键,显得比较笨拙

Private frmMain As Form

Private topmenu As Menu

Private timMain As Timer

'函数定义

'添加图标至通知栏

Public Function Icon_Add(frmParent As Form, mnuParent As Menu, timParent As Timer, iHwn d As Long, sTips As String, hIcon As Long, IconID As Long) As Long

'参数说明:iHwnd:窗口句柄,sTips:当鼠标移到通知栏图标上时显示的提示内容

'hIcon:图标句柄,IconID:图标Id号

'初始化控件成员

Set frmMain = frmParent

Set topmenu = mnuParent

Set timMain = timParent

With IconVa

.HWnd = iHwnd

.SzTip = sTips + Chr$(0)

.hIcon = hIcon

.Uid = IconID

.UCallbackMessage = TRAY_CALLBACK

.cbSize = Len(IconVa)

.UFlags = NIF_MESSAGE Or NIF_ICON Or NIF_TIP

End With

'获得让程序处理事件的权利

OldWindowProc = SetWindowLong(iHwnd, GWL_WNDPROC, AddressOf NewWindowProc)

'初始化单双击的判别标志

bIsSingle = False

bIsDouble = False

'初始化时钟

timMain.Enabled = True

timMain.Interval = 500

Icon_Add = Shell_NotifyIcon(NIM_ADD, IconVa)

End Function

'删除通知栏图标(参数说明同Icon_Add)

Function Icon_Del(iHwnd As Long, lIndex As Long) As Long

Dim IconVa As NOTIFYICONDATA

Dim L As Long

With IconVa

.HWnd = iHwnd

.Uid = lIndex

.cbSize = Len(IconVa)

End With

'当图标从托盘删除后,关闭时钟,不在监视单双击事件

timMain.Enabled = True

'让操作系统处理消息

SetWindowLong iHwnd, GWL_WNDPROC, OldWindowProc

Icon_Del = Shell_NotifyIcon(NIM_DELETE, IconVa)

End Function

'修改通知栏图标(参数说明同Icon_Add)

Public Function Icon_Modify(iHwnd As Long, sTips As String, hIcon As Long, IconID As Lon g) As Long

Dim IconVa As NOTIFYICONDATA

With IconVa

.HWnd = iHwnd

.SzTip = sTips + Chr$(0)

.hIcon = hIcon

.Uid = IconID

.UCallbackMessage = TRAY_CALLBACK

.cbSize = Len(IconVa)

.UFlags = NIF_MESSAGE Or NIF_ICON Or NIF_TIP

End With

Icon_Modify = Shell_NotifyIcon(NIM_MODIFY, IconVa)

End Function

'程序处理Windows传递的消息

Public Static Function NewWindowProc(ByVal HWnd As Long, ByVal Msg As Long, ByVal wP aram As Long, ByVal lParam As Long) As Long

'如果用户点击了托盘中的图标,则进行判断是点击了左键单双击,还是右键

If Msg = TRAY_CALLBACK Then

'如果点击了右键

If lParam = WM_RBUTTONDOWN Then

'则弹出右键菜单

frmMain.PopupMenu topmenu

Exit Function

End If

'如果双击左键

If lParam = WM_LBUTTONDBLCLK Then

bIsDouble = True

bIsSingle = False

Exit Function

End If

'如果点击了左键

If lParam = WM_LBUTTONDOWN Then

bIsSingle = True

bIsDouble = False

Exit Function

End If

End If

'如果是其他类型的消息则传递给原有默认的窗口函数

NewWindowProc = CallWindowProc(OldWindowProc, HWnd, Msg, wParam, lParam)

End Function

'被时钟调用,来区分单击,还是双击,以及事件处理内容

Public Sub procesSD()

'如果是双击,就恢复窗口,并把图标从托盘删除

If bIsDouble Then

Call Icon_Del(frmMain.HWnd, 0) '删除通知栏图标

frmMain.Show '调出窗口

frmMain.WindowState = 0

frmMain.SetFocus

ElseIf bIsSingle Then

'如果是单击,就弹出左键菜单

frmMain.PopupMenu topmenu

End If

'恢复单双击判断的标志

bIsSingle = False

bIsDouble = False

End Sub

程序最小化到托盘

VC++6.0中实现将应用程序的图标加入到Windows的系统托盘中(就是为应用程序在桌面右下角添加一个图标,和QQ类似)有位老兄说我乱贴,可能这位老兄已经看得眼花缭乱了,Shell_NotifyIcon 是一个Windows SDK的一个函数,只要你在windows下编程,不管你是BCB、VC、VB,都可以调用它来实现托盘图标,只是调用方法不同罢了。 常常能见到一些优秀的软件在运行后会将其应用程序图标加入到系统托盘中。如果能将自己编写的应用程序的图标也加入到系统托盘中,将会使你的程序显得很有专业水准。其实这并不困难,与系统托盘通信的函数只有一个: Shell_NotifyIcon (UINT message, NOTIFYICONDATA &m_nid); 首先看一下该函数的两个参数。 第一个参数message可以取以下值:NIM_ADD 向托盘中加入一个图标; NIM_MODIFY 修改托盘中的图标;NIM_DELETE 从托盘中删除一个图标; 第二个参数m_nid是NOTIFYICONDATA结构的一个引用。该结构的原型如下: typedef struct _NOTIFYICONDATA { DWORD cbSize;// 结构的大小,必须在程序中给出 HWND hWnd; //是你程序中将要接收托盘消息的窗口句柄 UINT uID; // 应用程序中定义的托盘图标ID,此参数用作标识 UINT uFlags; //设置属性,低三位有意义,0--7,如下: //第一位//#define NIF_MESSAGE 0x1 // uCallbackMessage参数有效 //第二位//#define NIF_ICON 0x2 // hIcon参数有效 //第三位//#define NIF_TIP 0x4 // szTip参数有效UINT uCallbackMessage; // 自定义的消息ID值,一定不要与以有的消息ID相重。 HICON hIcon; //显示在系统托盘上的Icon的句柄,可以为系统的IDI_WINLOGO等 CHAR szTip[64]; // 用于图标显示的提示字符串 } NOTIFYICONDATA; 为了接收到来自托盘的通知消息你可以将uCallbackMessage设定为你所定义的消息ID值,同时设定NIF_MESSAGE标志。这样当用户在你的托盘图标上移动或按下鼠标时,Windows将发出消息:该消息的messageID是你在uCallbackMessage中定义的值;wParam是你定义的uID值;而lParam是鼠标事件(如WM_LBUTTONDOWN),这样你的应用程序就能响应该事件了。因此,为了将自己的应用程序加入到系统托盘中,首先得建立一处理托盘通知消息的窗口对象,然后将窗口对象与你自己的托盘通知消息联系起来并建立相应的托盘通知消息映射机制,以便你的窗口对象能处理相应的事件。可以看到结构体NOTIFYICONDATA中,其成员变量hWnd,uID,uFlags均用于在窗口对象与你自己的托盘通知消息之间建立联系,而成员变量uCallbackMessage则必须是对应于你的窗口对象的托盘通知消息ID值。于是要完成的工作有: (1)建立一处理托盘通知消息的窗口对象; (2)建立一结构体NOTIFYICONDATA变量,并给变量的相应域赋值以在托盘通知消息与窗口对象之间建立联系; (3)建立相应的托盘通知消息映射机制; (4)调用Shell_NotifyIcon函数以在系统托盘中加入、修改或删除图标; (5)当然别忘了在你的窗口对象中编写相应的事件响应函数。

VB解析算法及程序实现

3.1解析算法及程序实现 1.计算长方体体积的算法描述如下:(h) (z)、宽(w)、高①输入长方体的长 v = z * w * h ②计算长方形体积③输出结果④结束()上述算法属于 A. 枚举算法 B. 排序算法 C. 解析算法 D. 递归算法 2.下列问题适合用解析算法求解的是() A.将十三张纸牌按从小到大进行排列 B.统计100内偶数的各位数字之和恰好为10的个数 C.计算一辆车行驶100公里的油耗 D.寻找本年级身高最高的同学 3.有如下问题: 12求出此圆锥体的体积。 V=πr ①已知圆锥的半径和高度h,使用公式hr3②已知班级每位同学的其中成绩总分s,按照s的值从大到小进行成绩排名。 ③已知圆的周长s,利用公式r=s/(2*3.14)求出圆的半径。 ④已知“水仙花数”的定义,找出1~10000范围内所有的水仙花数。 用计算机解决上述问题时,适合用解析算法的是() A.①② B.①③ C.③④ D.②④ 4.出租车计价规则:3公里以内,10元;超出3公里每公里增加2元。假定公里数为x,金额为y.解决此问题的公式和流程图如下图所示: 流程图加框处部分的算法属于:() A.解析算法 B.排序算法 C.枚举算法 D.递归算法

程序实现如下功能:分别现要求编写VB5.中输入Text3、和Text1、Text2在文本框Command1单击三条线段的长度,“判断”按钮中显示判断结果。程序后,在标签Label1 运行界面如图:按此要求编写的程序如下:Private Sub Command1_Click() Dim a As Single ,b As Single Dim c As Single ,st As String a=Val(Text1.Text) b=Val(Text2.Text) c=Val(Text3.Text) If Not (a + b > c And b + c > a And c + a > b) Then st = “这三条线不能构成一个三角形” ElseIf a * a + b * b = c * c Or a * a + c * c = b * b Or b * b + c * c = a * a Then “可以构成一个直角三角形” st = Then ① ElseIf “可以构成一个等边三角形” st = Else st = “可以构成一个不等边的斜三角形” End If Label1.Caption = ② End Sub 划线处应填写正确的语句是: (1)划线处① (2)划线处② 6.下列VB程序段实现计算s=1+1/2+2/3+3/4+…+99/100的值。请将下面划线处代码补充完整。 Private Sub Command1_Click() Dim i As Integer Dim s As Double s=1 For i=2 To 100 s= Next i

vb三种基本结构练习题

vb三种基本结构练习题 1、计算圆的面积(顺序结构) dim r,s,c as single r=inputbox("输入r的值") s=3.14*r*r c=2*3.14*r print s print c 2、小明去买电池,2.5元一节,买电池超过10节,超出的部分按八折出售。输入小明买电池的数量,输出小明应付的钱数。(选择语句) dim a as integer dim q as single a=inputbox("输入小明买的电池数") if a>10 then b=25+(a-10)*2.5*0.8 else b=a*2.5 end if print b 3、求1+2+3+4+……+100的和。(循环语句) dim i,sum as integer for i=1 to 100 sum=sum+i next i print sum 4、输入数字n,求n!(n!=1*2*3*……*n)(循环语句) dim i,sum,n as long n=inputbox("输入n的值") sum=1 for i=1 to n sum=sum*i next i print sum

1、在窗体上任意位置画一个文本框和一个命令按钮,编写程序,当用户单击命令按钮时,文本框移动到窗体的左上角,并且文本框的大小是原来的2倍。 2、在窗体上任意位置画一个文本框和一个命令按钮,设置窗体的标题属性为“信息窗口”;命令按钮的标题属性为“确定”。编写程序,当用户单击命令按钮时,在文本框中显示“包头师范学院”,要求字体为隶书、加粗、加下划线、字号为20、颜色为红色。 3、在窗体上任意位置画两个命令按钮,分别设置它们的标题属性为:加载图片、显示信息。编写程序,当用户单击第一个命令按钮时,在窗体上加载一幅图片(图片自定)。当用户单击第二个命令按钮时,在窗体上打印信息“包头师范学院“。 4、例1: 在窗体上部设置一个文本框,文本框的下面设置 3 个命令按钮,其中左边按钮中标有“单击此按钮”,中间按钮中标有“清除”,右边按钮中标有“程序结束”。当程序运行时,用鼠标单击左边按钮时,屏幕上部的文本框中显示“欢迎使用vb 6.0”;如果单击中间按钮,则清除文本框中显示的内容;而如果单击右边的按钮,则结束程序。 5、例2 请根据题目要求,设计VB应用程序: 1、在窗体的上方并排分别创建一个标签控件label1和一个文本框控件 text1; 要求:①窗体的标题命名为“个人简介”、窗体背景颜色为黄色。 ②标签和文本框中显示的字体为隶书、样式为斜体、字体大小为三号的红色字。 2、在两个控件的下方并排创建两个命令按钮控件command1、command2,分别命名为:“姓名”、“单位”。 3、请编写事件过程代码,使得程序运行时,当鼠标按下“姓名”按钮时,将在标签中显示你的名字;当鼠标按下“单位”按钮时,将在文本框中显示你现在所在的系、级、班。 4、完成以上操作后以V1为窗体名保存在D盘自己的文件夹下 上机练习三 1、在窗体上画一个文本框控件,要求运行时在文本框中显示信息“包头师范学院”(form-load事件)。当用户在文本框中选中任意数量的字符时,在窗体上显示所选中的字符数、选中字符数的首字符数及选中的字符内容。 2、在窗体上画两个文本框控件,先在属性窗口中删除两个文本框中的初始text 属性值。要求当程序运行时,当在文本框1中输入任意一个字符时,同时在文本框2中显示出来,同时也在窗体中显示出来。 3、实现“减法器”功能。

VB基本知识及选择、循环结构习题

一、VB 基本知识及选择、循环结构习题 一、基本概念题 (1) 说明下列哪些是Visual Basic 合法的直接常量,并分别指出它们的类型。 %100 1E1 123D3 123,456 0100 “ASDF” “” #2004/10/7# 100# π &O78 &H123 True T -1123! # (2)下列数据哪些是变量,哪些是常量是什么类型的常量 Name “name” False ff “11/16/99” cj “120” n #11/12/2004# (3) 下列符号中,哪些可以是Visual Basic 的合法变量名 A123 a12_3 123_a a,123 a 123 Integer XYZ False Sin(x) 变量名 sinx π (4)把下列数学表达式写成Visual Basic 表达式: (1)5||z y x ++ (2)6)1(xy + (3)xy y x 310+ (4)a ac b b 242-+- (5)3211111r r r ++ (6)110ln 45sin 10++++y x e (5)写出下列表达式的值: (1)123 + 23 Mod 10 \ 7 + Asc("A") (2)Int * 100 + / 100 (3)#11/22/2004# - 10 (4)"ZXY" & 123 & "abc" (6)设a=7,b=3,c=4,求下列表达式的值: (1)a + 3 * c (2)a ^ 2 / 4 (3)a / 2 + 3 \ 2 (4)a Mod 3 + b ^ 3 / c \ 5 (7)写出下列函数的值: (1)Int (2)Fix (3)Sqr(Sqr(81)) (4)Len("Visual Basic 程序设计") (5)Int(Abs(99 - 100) / 2) (6)Sgn(7 * 3 + 2) (7)LCase("Hellow VB!") (8)Mid("Hellow VB!", 4, 3) (9)Left("Hellow VB!", 3) (10)Val("16个加23个") (11)Str (12)UCase("Visual Basic") 二、 选择题 (1)可以同时删除字符串前导和尾部空格的函数是 。 A. Ltrim B. Rtrim C. Trim D. Mid (2)函数Int(Rnd(1) * 10)是在哪个范围产生随机整数 。 A. (0,1) B. (0,9) C. (1,10) D. (1,9) (3)数学式子sin25o写成Visual Basic 表达式是 。 B. Sin(25) C. Sin(25o) D. Sin(25*180) (4)表达式16/4 – 2^3 * 8/4 Mod 5\2的值是 。 A. 14 B. 4 C. 20 D. 2 (5)数学关系式103<≤x 表示成正确的VB 表达式为 。 A. 3<= x <10 B. x >= 3 And x<10 C. x>=3 Or x<10 D. 3<= x And <10

VB托盘程序详解

【转载】VB托盘程序详解 2007/11/25 20:53 1、新建立一个VB6工程,将Form1的ShowInTaskBar属性设置为False 2、菜单:工程--添加模块按“打开”这样就添加了一个新模块,名为Module1,保存为Module1.bas 3、在Module1中写下如下代码: Option Explicit Public Const MAX_TOOLTIP As Integer = 64 Public Const NIF_ICON = &H2 Public Const NIF_MESSAGE = &H1 Public Const NIF_TIP = &H4 Public Const NIM_ADD = &H0 Public Const NIM_DELETE = &H2 Public Const WM_MOUSEMOVE = &H200 Public Const WM_LBUTTONDOWN = &H201 Public Const WM_LBUTTONUP = &H202 Public Const WM_LBUTTONDBLCLK = &H203 Public Const WM_RBUTTONDOWN = &H204 Public Const WM_RBUTTONUP = &H205 Public Const WM_RBUTTONDBLCLK = &H206 Public Const SW_RESTORE = 9 Public Const SW_HIDE = 0 Public nfIconData As NOTIFYICONDATA Public Type NOTIFYICONDATA cbSize As Long hWnd As Long uID As Long uFlags As Long uCallbackMessage As Long hIcon As Long szTip As String * MAX_TOOLTIP End Type Public Declare Function ShowWindow Lib "user32" (ByVal hWnd As Long, ByVal nCmdShow As Long) As Long Public Declare Function Shell_NotifyIcon Lib "shell32.dll" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, lpData As NOTIFYICONDATA) As Long

电气工程师个人简历模板

电气工程师个人简历模板 ◆基本信息 姓名: 彭先生 目前所在:东莞年龄:34 户口所在:湖南国籍:中国 婚姻状况:已婚民族:汉族 诚信徽章:未申请身高:170cm 人才测评:未测评体重: 我的特长: ◆求职意向 人才类型:普通求职 应聘职位:工程/设备-经理/主管/工程师 工作年限:10职称: 求职类型:全职可到职日期:一个月 月薪要求:希望工作地区:广东省,, ◆工作经历 公司性质:外商独资所属行业:电子技术/半导体/集成电路担任职位:电气工程师

工作描述:1、对耗能高的动力设备进行优化节能改造,特别是已停产的老设备。如公司的美国约克冷冻机直接去掉滑阀,由变频器控制压缩机,达到节能与优化的目的。 2、对新增动力设备如空压机、冷冻机、中央空调、真空泵系统与净化车间控制设备、高低压配电系统等的设备招标选型,直到正常投入生产。同时制定严格的安全操作规程与保养、点检计划,保障设备安全运行。 3、公司纯水系统、污水处理系统的规划与维护、保养。根据制定的操作规程合理安排安全操作与维护保养,保障系统的安全,达到生产与国家环保要求。 离职原因: 中粮新沙粮油工业(东莞)有限公司起止年月:2004-03~2008-05 担任职位:电气主管 2、对精炼包装车间和浸出车间发油台的由PLC、变频器、触摸屏等工控元件控制的自控系统,由本人重新进行了设计,达到即提高了工作效率又优化了工艺。 4、做好维修人员的生产调度和培训工作及安全检查,对于技术上的难题给予技术性指导。同时做好易损件的申购工作,以备紧急情况之急需,保证生产。 离职原因: 汤姆逊多媒体(东莞)有限公司起止年月:2000-03~2004-03 公司性质:外商独资所属行业:通信/电信/网络设备 担任职位:电气工程师 工作描述:主要是塑料车间、生产部、仪器仪表的维护与安全检查,特别是自动化设备的维修与保养,PLC、变频器、伺服电机等自动化设备的设计与安全维护。 离职原因:

pb中实现系统托盘

pb 程序托盘化(taskbar status area) 一、涉及的API //托盘程序需要的API 1、shell_notifyicon(long dwmessage,ref nstr_notifyicondata lpdata) 功能:创建、修改、删除托盘图标 参数:dwmessage 0:创建托盘图标;1:修改托盘图标;2:删除图标 lpdata 结构体 结构体定义: long cbsize 结构体长度,固定为88; long hwnd 图标消息接收窗口; long uid 任务栏图标对应的应用程序定义的标识符; long uflags 结构体成员有效标志,1:hicon有效,2:ucallbackmessage有效,4:sztip有效,可以组合 long ucallbackmessage 返回给窗口hwnd的消息 long hicon 图标 character sztip[64] 鼠标移动到图标时显示的文字 pb声明: function integer shell_notifyicon (long dwmessage,ref nstr_notifyicondata lpdata) library "shell32" alias for "Shell_NotifyIconA" 2、loadimage(long hinst,string lpszName,long uType ,long cxDesired ,long cyDesired ,long fuLoad )

功能:装载图片 参数:hinst 包含要装载图片的模块实例的句柄,如果是OEM图片,则此参数为0 lpszName 图片文件名(带路径) uType 装载图片的类型,0:bitmap,2:cursor,1:icon cxDesired utype为1,2时表示图像的宽度(象素),如果utype为0则必须设为0 cyDesired utype为1,2时表示图像的高度(象素),如果utype为0则必须设为0 fuLoad 设为0 pb声明: function long loadimage (long hinst,string lpsz,long un1,long n1,long n2,long un2) library "user32" alias for "LoadImageA" 3、destroyicon(long hicon) 功能:销毁图片 参数:hicon 图片句柄 pb声明: function long destroyicon (long hicon) library "user32" alias for "DestroyIcon" 4、CreatePopupMenu() 功能:创建一个弹出菜单 pb声明:

计算机二级考试《VB》模拟试题及答案

计算机二级考试《VB》模拟试题及答案 2016计算机二级考试《VB》模拟试题及答案 一、基本操作题 (1)在名称为Forml、标题为“球类项目”且没有最大化和最小化按钮的窗体上画1个名称为Combol的组合框。组合框中的文本内容为空,表项内容有“乒乓球”、“羽毛球”和“网球”3项。运行后的窗体如图所示。 注意:存盘时必须存放在考生文件夹下,工程文件名为 sjtl.vbp,窗体文件名为sjtl.frm。 (2)在名称为Forml、标题为“转换”的窗体上,画1个名称为Shapel、边框宽度为3的形状。再画两个标题分别为“椭圆”和“圆”的命令按钮。如下图所示。 要求:编写适当的事件过程,使得单击“椭圆”按钮时,Shapel 的形状变换为椭圆;单击“圆”按钮时,Shapel的形状变换为圆。程序中不得使用变量,每个事件过程中只能写一条语句。 注意:存盘时必须存放在考生文件夹下,工程文件名为 sjr2.vbp,窗体文件名为sjr2.frm。 二、简单应用题 (1)在考生文件夹下有一个工程文件sjt3.vbp。窗体Forml上有两个标题分别是“读数据”和“查找”的命令按钮。请画1个名称为Textl、初始值为空的文本框,该文本框允许显示多行内容,且有垂直滚动条,如图所示。程序功能如下。 ①在考生文件夹下的in.3.dat文件中存有100个正整数。单击“读数据”按钮,则将文件in3.dat中的数据读入数组a中。 ②单击“查找”按钮,则查找数组a中所有为7的倍数的数据,并将这些数据顺次显示在Textl文本框内(数据之间用空格隔开)。

“读数据”按钮的Click事件过程已经给出,请编写程序完成“查找”按钮的Click事件过程,实现上述功能。 注意:考生不得修改窗体文件中已经存在的控件和程序,在结束程序运行之前,必须使用“查找”按钮完成查找过程,且必须用窗 体右上角的关闭按钮结束程序,否则无成绩。最后将程序按原文件 名存盘。 (2)考生文件夹下有一个工程文件sit4.vbp。在窗体Forml上有 两个名称为Commandl和Command2、标题分别为“重输”和“查找”的命令按钮。程序功能如下。 单击“重输”按钮,则清空Textl中的`内容,等待用户输入由 空格隔开的若干个英文单词;单击“查找”按钮,则找出Textl中最 长的单词,并将其显示在Text2中。某一次的运行效果如图所示。 请将“查找”按钮的Click事件过程中的注释符去掉,把?改为正确 内容,以实现上述程序功能。 注意:考生不得修改窗体文件中已经存在的控件和程序,最后将程序按原文件名存盘。 三、综合应用题 考生文件夹下有一个工程文件sjt.s.vbp。在窗体Forml上有两 个标题分别是“产生数据”和“重新排列”的命令按钮,有两个标 题为“原始数据”和“排列数据”的标签。程序功能如下。 ①单击“产生数据”按钮,则随机产生20个一位整数,存人数 组a中,并同时显示在Textl中。 ②单击“重新排列”按钮,则重新排列数组a中的元素:使等值的元素相邻存放,并且保持它们在数组a中首次出现的相对次序;最 后将排列结果显示在Text2中。某一次运行结果如图所示。 请将“重新排列”按钮的Click事件过程中的注释符去掉,把“?”改为正确内容,以实现上述程序功能。

用VB6.0实现将窗体最小化到系统托盘区

用VB6.0实现将窗体最小化到系统托盘区 使用说明:共有两个方法,经个人实际测试(环境:xpsp3 vb6.0)第二个控件法最有效果,第一个方法在启动时确实在右下角,但是弹出后再次最小化就跑到屏幕左下角了,无法最小化,不知道是啥原因,希望大家改进代码。本人力荐第二种小巧有效简单的方法。 方法一 托盘,亦即程序最小化后程序图标隐藏到屏幕右下角的任务栏里。这种最小化方法比普通的最小化节约空间,因此备受欢迎,很多软件都具有这样的功能。在VB中,可用API 函数来实现托盘功能,但比较复杂,不太好操作。 相对而言采用一种非常简单易行的方法:控件法,才是最适合最方便的。下面要使用已被微软封装好的控件:csystray1(名称可自定)。 说到控件,大家可能要皱眉头了:去哪找呀?放心!这个控件就躺在你的VB安装盘里(目录为:COMMON\TOOLS\VB\UNSUPPRT\SYSTRAY)!不过,得处理一下:请在Tool 文件夹里查找一个名叫Systray的目录,将它拷贝到硬盘,用VB打开该目录下的工程,必要的话可作些改进(如更换图标、添加功能等),然后编译成ocx控件,可以随意命名。为方便使用起见,最好编译到Windows\System目录下。好了,现在我们就可以在我们的程序中使用此控件来轻松实现托盘功能了。vb中添加控件的方法就不用我说了吧? 控件的属性和事件浅析: 该控件的InTray属性是用来设置是否显示在托盘中,True为显示在托盘,False为不显示; 该控件的TrayIcon属性是在托盘中显示的图标式样; 该控件的TrayTip属性是鼠标移动到该控件上面时,显示的提示文字; 该控件的重要事件是几个我们常用的鼠标事件:按下、放开、移动、双击,编程时就是利用这些事件达到在任务栏中控制程序的目的。 源代码如下: '使程序最小化时显示到系统托盘 Private Sub Form_Resize() If Me.WindowState = 1 Then '如程序为最小化则—— cSysTray1.InTray = True '隐藏到任务栏 Me.Visible = False '让程序界面不可见 End If End Sub '点击托盘图标后,让程序窗体显示出来 Private Sub CsysTray1_MouseDown(Button As Integer, Id As Long) Me.WindowState = 0 '程序回复到Normal状态 Me.Visible = True '从任务栏中清除图标 cSysTray1.InTray = False '令程序界面可见 Me.setfocus End Sub

VB程序设计试题及答案一

V B程序设计试题及答案(一) 一、单选题 1. VB6.0是一种面向B 的编程环境。 (A) 机器(B) 对象 (C) 过程(D) 应用 2. 要使FormI窗体的标题栏显示"欢迎使用VB",以下D 语句是正确的。 (A) Forml.Caption=“欢迎使用VB” (B) Forml.Caption='欢迎使用VB' (C) Forml.Caption=欢迎使用VB (D) Forml.Caption="欢迎使用VB" 3. 若要使命令按钮不可操作,要对A 属性进行设置。 (A) EnabIed (B)Visible (C) Backcolor (D)Caption 4. 如果在窗体上已经创建了一个文本框对象TextI,可以通过C 事件获得输入键值的ASCII码。 (A) Change (B) LostFocus (C) KeyPress (D) GotFocus 5. 下面A 是合法的变量名。 (A) X_yz (B) 123ab。(C) integer (D) X-Y 6. 以下关系表达式中,其值为False的是A 。 (A) "ABC">"AbC" (B) "女">"男" (C) "BASIC"=UCase("basic) (D) "123"<"23" 7. 为了给x、y、z三个变量赋初值1,下面正确的赋值语句是A 。 (A) x=1:y=1:z=1 (B) x=1,y=1,z=1 (C) x=y=z=1 (D) xyz=1 8. VB提供了结构化程序设计的三种基本结构,三种基本结构是D 。 (A)递归结构、选择结构、循环结构 (B)选择结构、过程结构、顺序结构 (C)过程结构、输入输出结构、转向结构 (D)选择结构、循环结构、顺序结构 9. 下面If语句统计满足性别为男、职称为副教授以上、年龄小于40岁条件的人数,不正确的语句是 D 。 (A) If sex="男" And age=4O And InStr(duty,"教授")>O Then n=n+l (B) If sex="男" And age=4O And (duty="教授" Or duty="副教授") Then n=n+l (C) If sex="男" And age=4O And Right(duty,2)="教授" Then n=n+l (D) If sex="男" And age=4O And duty="教授" And duty="副教授" Then n=n+l 10.下列关于Do…Loop循环结构执行循环次数的描述正确的是D 。 (A) Do While…Loop循环和Do…Loop Until循环至少都执行一次 (B) Do While…Loop循环和Do…Loop Until循环可能都不执行 (C) Do While…Loop循环至少执行一次和Do…Loop Until循环可能不执行 (D) Do While…Loop循环可能不执行和Do…Loop Until循环至少执行一次 11.以下B 是正确的For…Next结构。 (A) For x=1 To Step 10 (B) For x=3 To -3 Step -3 ……

VB程序基本知识学案

主题:程序基本知识 数据类型、常量、变量、函数和表达式 一、点击考点: 1、知道常用的数据类型、变量、常量的含义;学会定义常量、变量的数据类型。 2、知道程序中运算符、函数、表达式的表示方式,能够转换数学表达式为程序接受的 表达式。 3、掌握程序包括的四部分。 二、学习目标: 1、掌握数据类型及其特点; 2、知道常量、变量的声明格式;学会定义常量、变量 3、知道程序中运算符、函数、表达式的表示方式,能够转换数学表达式为程序接受的表达式。 4、知道程序包括的四部分内容。 三、学习方式: 在老师引导下的自主学习,互相评价做题效果 四、考点注解 1、知道常用的数据类型、变量、常量的含义;学会定义常量、变量的数据类型。 (1)VB数据类型(阅读课本27页的表) (2)常量 在程序执行过程中,其值不能改变的量称为常量。常量可以直接用一个数来表示,称为常数(或称为直接常量),也可以用一个符号来表示,称为符号常量。 常量的定义格式如下: Const <常量名> [As 数据类型]=表达式 (3)变量 在程序执行过程中,其值可以改变的量称为变量。 1)变量的命名规则 ?变量名首字符必须是字母; ?变量名只能由字母、数字和下划线组成; ?变量名不能使用VB中的关键字(保留字); ?变量名在同一个作用域内必须唯一; ?变量名长度不超过255; ?变量的命名最好还应遵守一定的编程约定。 3)变量定义语句 Dim <变量名> As <类型> [, <变量名> As <类型>]… 2、知道程序中运算符、函数、表达式的表示方式,能够转换数学表达式为程序接受的表达式。 运算符是在代码中对各种数据进行运算的符号。例如,有进行加、减、乘、除算术运算的运算符,有进行与、或、非、异或逻辑运算的运算符。 表达式是由运算符和运算对象及圆括号组成的一个序列,它是由常量、变量、函数等用运算符连接而成的式子。表达式是构成程序代码的最基本要素。 1)赋值运算符 赋值语句的语法格式为:

VB学习总结

1.2.1 VB简介 VB:Visual Basic BASIC:Beginner’s All-Purpose Symbolic Instruction Code BASIC语言是专门为初学者设计的计算机语言,于1964年问世。最初只有十几条语句,由于简单易学而受到了用户的欢迎,很快就应用于各个领域。随着计算机科学技术的发展,计算机厂商在原有的基础上不断的添加新的功能,进行扩展强化,各种BASIC版本应运而生,使它成为最常用的计算机程序设计语言。 1987年Microsoft公司开发了Quick BASIC,它克服了原有BASIC结构化差和运算速度慢的缺点,并且在功能上大为扩展,具有编辑、运行和调试的集成环境。Quick BASIC兼容以前的传统BASIC。 VB是Microsoft公司在Quick BASIC的基础上为开发Windows应用程序而提供的强有力的开发环境和工具,是具有很好的图形用户界面(Graphic User Interface,简称GUI)的程序设计语言。它采用面向对象和事件驱动的程序设计两种新机制,把过程化和结构化编程集合在一起。正是由于它在应用程序开发中的图形化构思,使得开发者能非常容易地创建一个窗口(在VB中称为窗体—Form),然后从VB工具箱选择控件放在窗体内,无需编写程序。就如同目前盖房子所用的门、窗、水泥、钢筋、砖等,都是现成的材料,只要到建筑现场组合就可以了。用VB设计程序就好比现代的建筑师采用现代科技的产品,而用传统DOS (Disk Operating System)下的BASIC的就如同早先的工匠,一砖、一瓦、一木都要自己动手。 Visual Basic for Windows是一种具有良好图形用户界面(GUI)的程序设计语言,同时又是一种完全支持面向对象程序设计的语言。 Visual是指开发图形用户界面(GUI)的方法,不需要编写大量代码去描述界面元素的外观和位置,而只要把预先建立的对象拖放到窗体上即可。这种直观的编程方法,也叫做可视化编程。Visual的意思是“视觉的”或“可视的”,也就是直观的编程方法。就像使用“画图”之类的绘图程序,通过选择画图工具来画图一样。 Basic是指BASIC语言,之所以叫做“Visual Basic”就是因为它使用了BASIC语言作为代码。VB在原有BASIC语言的基础上进一步发展,至今包含了数百条语句、函数及关 键词,其中很多与Windows GUI有直接关系。 1.2.2 VB的发展过程 1991年:为了简化Windows应用程序的开发,Microsoft公司推出了Visual Basic 1.0。 1992年:Microsoft公司推出了Visual Basic 2.0。 1993年:Microsoft公司推出了Visual Basic 3.0。 1995年:随着Windows95的发布,Visual Basic 4.0也随之推出。 1997年:Microsoft公司开始推出Windows开发工具套件Microsoft Visual Studio 1.0,其中包括了Visual Basic 5.0。

VB6.0实现窗体最小化时到系统托盘区

VB6.0将窗体最小化到系统托盘区 使用说明:共有两个方法,经个人实际测试(环境:xpsp3 vb6.0)第二个控件法最有效果,第一个方法在启动时确实在右下角,但是弹出后再次最小化就跑到屏幕左下角了,无法最小化,不知道是啥原因,希望大家改进代码。本人力荐第二种小巧有效简单的方法。 ---------------------------------------------------------------------------------------------------- 方法一 托盘,亦即程序最小化后程序图标隐藏到屏幕右下角的任务栏里。这种最小化方法比普通的最小化节约空间,因此备受欢迎,很多软件都具有这样的功能。在VB中,可用API 函数来实现托盘功能,但比较复杂,不太好操作。 相对而言采用一种非常简单易行的方法:控件法,才是最适合最方便的。下面要使用已被微软封装好的控件:csystray1(名称可自定)。 说到控件,大家可能要皱眉头了:去哪找呀?放心!这个控件就躺在你的VB安装盘里(目录为:COMMON\TOOLS\VB\UNSUPPRT\SYSTRAY)!不过,得处理一下:请在Tool 文件夹里查找一个名叫Systray的目录,将它拷贝到硬盘,用VB打开该目录下的工程,必要的话可作些改进(如更换图标、添加功能等),然后编译成ocx控件,可以随意命名。为方便使用起见,最好编译到Windows\System目录下。好了,现在我们就可以在我们的程序中使用此控件来轻松实现托盘功能了。vb中添加控件的方法就不用我说了吧? ---------------------------------------------------------------------------------------------------------- 控件的属性和事件浅析: 该控件的InTray属性是用来设置是否显示在托盘中,True为显示在托盘,False为不显示; 该控件的TrayIcon属性是在托盘中显示的图标式样; 该控件的TrayTip属性是鼠标移动到该控件上面时,显示的提示文字; 该控件的重要事件是几个我们常用的鼠标事件:按下、放开、移动、双击,编程时就是利用这些事件达到在任务栏中控制程序的目的。 ------------------------------------------------------------------------------------------------------- 源代码如下: '使程序最小化时显示到系统托盘 Private Sub Form_Resize() If Me.WindowState = 1 Then '如程序为最小化则—— cSysTray1.InTray = True '隐藏到任务栏 Me.Visible = False '让程序界面不可见 End If End Sub '点击托盘图标后,让程序窗体显示出来 Private Sub CsysTray1_MouseDown(Button As Integer, Id As Long) Me.WindowState = 0 '程序回复到Normal状态 Me.Visible = True '从任务栏中清除图标 cSysTray1.InTray = False '令程序界面可见

VB程序的三种基本结构复习课教学案例

《VB程序的三种基本控制结构》 复习课教案 平桂高级中学陀君一、案例背景信息 模块:算法与程序设计 年级:高一年级 所用教材版本:粤教版《算法与程序设计》 学时数:1课时(40分钟) 二、教学设计: 1、教学目标: 知识与技能:能根据流程图正确区分VB程序的三种基本结构,并记住相关语句格式,能编写出简单明了的程序关键代码; 过程与方法:充分认识VB程序中三种基本结构的实用性,体会生活中算法的存在和精彩。 情感态度与价值观:培养学生在学习过程中积极思考、自我探究的能力和学以致用的意识。 2、教学重点:顺序、选择(分支)和循环三种基本结构的区分及其对应的VB 语句的使用。 教学难点:for循环结构,各类语句关键代码的编写。 三、教学实录 1.复习引入 师:我们之前学过VB的基本结构,通常程序有三种最基本的结构,是哪三种结构? 大部分学生在底下小声回答,师让某生回答,说:顺序模式、分支模式、循环模式。

师:分支模式也可称为? 部分学生:选择模式。 师:非常好,接下来看下这三种结构的流程图,然后分别指出这三个流程图是什么结构。(出示三种流程图结构) 2.正题 (1)顺序结构P38: 执行第一条语句后,必然从第二条语句继续,顺序执行所有的语句,直到执行完最后一条语句为止。 例1:例1、 a=1 b=2 c=a+b a=c-a b=c-a

最后,变量b的值是( 1 ) (2)选择结构(分支结构):P42 根据条件判断其是否成立,如果成立执行成立的分支;否则执行另一分支。其一般形式为: If 条件Then 语句序列1 Else 语句序列2 End If 单行形式为: If 条件Then 语句组1 Else 语句组2 例2、a =10 If a>=10 Then a=a+1 Else a=a-1 End If 该程序段运行后,变量a的值是( D ) A. 8 B. 9 C. 10 D. 11 【师读题,学生思考。请同学回答,让同学们思考a=5结果是多少】 (3)循环结构:P51 根据条件判断其是否成立,如果条件成立则重复执行循环体(循环结构中某语句序列),直到条件不成立,退出循环结构为止。 循环结构的常用形式为: for 循环变量= 初值to 终值[step 步长] [循环体] next [循环变量]

c最小化托盘

(一)原理 程序实现:最小化时隐藏至托盘,双击显示窗口,右键弹出快捷菜单“退出”并添加了响应函数。 1、托盘化的原理:首先要将窗口隐藏,然后在右下角托盘中绘制图标。 2、恢复的原理:将窗口显示,再将托盘中的图片删除。 (二)总体程序实现 1、首先建立一个基于对话框的MFC程序"CTrayDlg"。 然后在TrayDlg.h文件里加入自定义消息WM_SHOWTASK: #define WM_SHOWTASK (WM_USER + 0x100)//一般数值大于 100//{{AFX_MSG(CTrayDlg) afx_msg LRESULT OnShowTask(WPARAM wParam,LPARAMlParam);//}}AFX_MSG DECLARE_MESSAGE_MAP() 2、在TrayDlg.cpp文件里加入如下代码: BEGIN_MESSAGE_MAP(CTrayDlg, CDialog) //{{AFX_MSG_MAP(CTrayDlg) 中间加入消息声明: ON_MESSAGE(WM_SHOWTASK,OnShowTask) //}}AFX_MSG_MAP END_MESSAGE_MAP() 3、在CTrayDlg的::OnSysCommand(UINT nID, LPARAM lParam)函数体中增加一个命令响应:

if(nID==SC_MINIMIZE) ToTray();//最小化到托盘的函数 (三)具体函数内容 1、最小化到托盘函数 TrayDlg.h中添加函数声明: voidToTray(); TrayDlg.cpp中定义函数体: voidCTrayDlg::ToTray() { NOTIFYICONDATAnid; //NOTIFYICONDATA结构包含了系统用来处理托盘图标的信息, //它包括选择的图标、回调消息、提示消息和图标对应的窗口等内容。 nid.cbSize=(DWORD)sizeof(NOTIFYICONDATA);//以字节为单位的这个结构的大小 nid.hWnd=this->m_hWnd;//接收托盘图标通知消息的窗口句柄 nid.uID=IDR_MAINFRAME;//应用程序定义的该图标的ID号 nid.uFlags=NIF_ICON|NIF_MESSAGE|NIF_TIP ;//设置该图标的属性 nid.uCallbackMessage=WM_SHOWTASK;//应用程序定义的消息ID号,此消息传递给hWnd nid.hIcon=LoadIcon(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDR_MAINFRA ME));//图标的句柄 strcpy(nid.szTip,"我的托盘我作主");//鼠标停留在图标上显示的提示信息Shell_NotifyIcon(NIM_ADD,&nid);//在托盘区添加图标de函数,函数说明见文章附录

相关主题
文本预览
相关文档 最新文档