背景:                 
[本书目录] [图书首页] [本书讨论区]  
链接地址:http://www.17xie.com/read-67.html    注册17xie 一起来写书 实现您的出书梦想!

      End If

 End Sub

其中MsgBoxInvalid Passwordtry again!”,“Login”用于显示一个对话框,对话框中的信息为字符串“Invalid Passwordtry again!”,并且对话框的标题栏中的文字为“Login”。

4.为Cancel控件添加代码

不论用户输入用户名和密码与否,单击Cancel按钮,程序都会给出一个提示的信息,询问是否关闭计算机,如果用户不想关闭计算机,仍然可以接受用户的输入,否则就会关闭计算机,代码如下:

Private Sub cmdCancel_Click()

   '用户单击Cancel按钮时触发

   Dim r As Integer

   r = MsgBox("Are you want to shoutdown?", 1 + 32 + 4096, "ShounDown")

   '显示一个对话框,提示是否关闭计算机

   If r = 1 Then

      '如果用户在对话框中单击“确定”按钮

      ExitWindowsEx 1, 66

      '关闭计算机

   End If

   txtUserName.SetFocus

End Sub

其中r = MsgBox("Are you want to shoutdown?", 1 + 32 + 4096, "ShounDown")这条语句用于显示一个询问用户是否关闭计算机的对话框,对话框中有“确定”和“取消”两个按钮,标题栏中显示的文字为字符串“ShounDown”,并且全部应用程序都被挂起,直到用户对消息框作出响应才继续工作。

变量r用于存储用户的反应,如果r=1,表示用户在对话框中单击“确定”按钮。

在这里还要用到一个API函数——ExitWindowsEx(),用于退出Windows系统,同时关闭计算机,它的声明如下:

Private Declare Function ExitWindowsEx Lib "user32" (ByVal uFlags As Long, ByVal dwReserved As Long) As Long

执行下面的语句就可以实现关闭计算机的功能:

ExitWindowsEx 1, 66

5.处理异常情况

如果用户在没有输入正确的用户名和密码的情况下而强行关闭登录应用程序,那么就要屏蔽用户的操作,同时关闭系统,如下列代码:

Private Sub Form_Unload(Cancel As Integer)

ExitWindowsEx 1, 66 '关闭计算机

End Sub

6.运行

保存项目文件,并且把它编译成d:\vbstudio\登录.exe文件。为了在启动Windows的同时开始登录,需要把“登录.exe”文件添加到启动程序组中,打开c:\pwin98\win.ini文件,在[Windows]项中的“run=”语句后面添加“d:\vbstudio\登录.exe文件”,如图9-4所示。

9-4  添加启动程序

重新启动计算机,启视频面后会出现如图9-5所示的登录画面。

9-5  登录画面

如果单击Cancel按钮,程序会给出一个如图9-6所示的提示信息,询问是否关闭计算机,如果用户不想关闭计算机,仍然可以接受用户的输入,否则就会关闭计算机,

9-6  ShounDown对话框

用户输入用户名和密码,单击OK按钮后,如果密码不正确,程序就会给出提示用户重新输入密码的信息如图9-7所示。如果密码正确,结束程序的运行。

9-7  密码不正确的对话框

附源程序清单如下:

程序清单

Option Explicit

Private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long

'窗体位置的函数说明

Private Declare Function ExitWindowsEx Lib "user32" (ByVal uFlags As Long, ByVal dwReserved As Long) As Long

'退出操作系统的函数说明

Private Const SWP_NOSIZE = &H1

Private Const SWP_NOMOVE = &H2

Private Const HWND_TOP = 0

'常量的说明

 

Private Sub Form_Unload(Cancel As Integer)

ExitWindowsEx 1, 66

'关闭计算机

End Sub

 

Private Sub Timer1_Timer()

'每隔1秒钟触发一次

SetWindowPos frmLogin.hwnd, HWND_TOP, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE

'登录位于其他窗体的前面

frmLogin.SetFocus

End Sub

 

Private Sub cmdCancel_Click()

   '用户单击Cancel按钮时触发

    'set the global var to false

    'to denote a failed login

   Dim r As Integer

   '定义一个整型变量

   r = MsgBox("Are you want to shoutdown?", 1 + 32 + 4096, "ShounDown")

   '显示一个对话框,提示是否关闭计算机

   '对话框中显示有“确定”和“取消”两个按钮

   '标题栏中显示的文字为字符串“ShounDown

   '全部应用程序都被挂起,直到用户对消息框作出响应才继续工作。

   If r = 1 Then

      '如果用户在对话框中单击“确定”按钮

      ExitWindowsEx 1, 66

      '关闭计算机

   End If

   txtUserName.SetFocus

End Sub

 

Private Sub cmdOK_Click()

    'check for correct password

    If txtUserName.Text = "" Then

      '如果不输入用户名

      MsgBox "Invalid UserName, try again!", , "UserName"

      '弹出一个对话框

      txtUserName.SetFocus

    Else

      If txtPassword = "password" Then

        '如果用户输入的密码正确

        'place code to here to pass the

        'success to the calling sub

        'setting a global var is the easiest

        End

        '退出程序的运行

      Else

        '如果用户输入的密码不正确

        MsgBox "Invalid Password, try again!", , "Login"

        '显示一个对话框

        txtPassword.SetFocus

        SendKeys "{Home}+{End}"

        '重新登录

      End If

  End If             

End Sub

9.2  API图像处理

Windows处理图像的API函数中,Bitblt()函数是非常重要而且常用的函数之一。

通过这个函数我们可以实现图像的视频,图像的旋转和图像的动态显示等效果,同时如果想在图像处理方面有所突破的话,也必须能够熟练的掌握Bitblt()函数。它的声明如下:


字数:4789    最后更新:1年以前 [08-29 14:31]我爱钱 修改
本页编辑者:我爱钱  
[前一页]:第九章  [后一页]:第九章
[在本页中加入书签] [收藏本书] [推荐本书]
  17xie论坛 > 本书讨论区 > 本页评论   (共0条)
发表评论

用户名称 匿名发表
评论内容
验证码

关于我们 | 版权声明 | 免责声明 | 诚聘英才 | 联系我们 | 合作伙伴 | 友情链接 | 广告合作 | 提交意见
Copyright © 2007 17xie.com 互联网协同写书平台 京ICP备08002671号