精华内容
下载资源
问答
  • 前几天,我们在调试代码的过程中我发现,我们的画图板窗体关闭按钮不可用,这是什么原因呢,查了关于窗体得属性只有控制Maxbutton 和MinButton,而没有控制关闭的,我们找来了师傅,在百度上查了又查终于找到答案了!...

    前几天,我们在调试代码的过程中我发现,我们的画图板窗体上关闭按钮不可用,这是什么原因呢,查了关于窗体得属性只有控制Maxbutton MinButton,而没有控制关闭的,我们找来了师傅,在百度上查了又查终于找到答案了!

    原来在代码中利用了API函数才实现了这样的效果.

    这是相关代码:

    PrivateDeclare Function GetSystemMenu Lib "user32" (ByVal hwnd As Long,ByVal bRevert As Long) As Long

    PrivateDeclare Function RemoveMenu Lib "user32" (ByVal hMenu As Long, ByValnPosition As Long, ByVal wFlags As Long) As Long

    PrivateConst MF_REMOVE = &H1000

    PrivateConst SC_CLOSE = &HF060

     

    FunctionDisabled(ChWnd As Long)

    DimhMenu, hendMenu As Long

    Dim c AsLong

    hMenu =GetSystemMenu(ChWnd, 0)

    RemoveMenuhMenu, SC_CLOSE, MF_REMOVE

    EndFunction

    '然后在SubForm_Load()中加入Disabled Me.hwnd即可:

    PrivateSub Form_Load()

    DisabledMe.hwnd

    End Sub

    这让我很惊奇,一个小小的关闭按钮,怎么还用API函数来控制呢,看来我的学习还不够,连冰山一角都没学到,API好神秘啊.功能也那么强大,什么时候我才能运用自如了.

    我得努力!!!

    通过这个小问题的学习,我悟出,遇事不要慌,不要先在心理上给自己打退堂鼓,这才是对待问题的良策呀!!!

    展开全文
  • 这是一个相对简单的VB制作透明 窗体的方法,看上去这个窗体无边框、无标题栏,也没有最小最大化及关闭按钮,完全显示了一个图片的效果,其实本代码是一个透明窗体的实现实例,特此为大家分享代码如下:  Private ...
  • 前言  不知道大家有没有出现过这样的问题,当子窗体是最小化状态时,点击主窗体右上角的[×]按钮,或者直接关闭该子窗体时,VB就会停止运行。曾经这个问题一度困扰了我,但是原系统这样操作确确实实是没有问题的。...

    前言

      不知道大家有没有出现过这样的问题,当子窗体是最小化状态时,点击主窗体右上角的[×]按钮,或者直接关闭该子窗体时,VB就会停止运行。曾经这个问题一度困扰了我,但是原系统这样操作确确实实是没有问题的。

    解决方法

      在解决这个问题之前,先来一些准备工作。
      不知道大家是否知道,一个窗体在卸载时发生的事件的顺序,其实是这样的:Form_QueryUnload() -> Form_Unload() -> Form_Terminate()。
      想必大家对Form_Unload事件已经很熟悉了,它发生在窗体卸载时。而Form_QueryUnload()发生在窗体卸载前,那么Form_Terminate()则发生在窗体卸载之后。

    Form_QueryUnload()的具体用法

    Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)

     Cancel:一个整数,将此参数设定为除 0 以外的任何值,可停止 QueryUnload 事件,并阻止该窗体和应用程序的关闭。如果取值为0,则该窗体将被关闭。
     UnloadMode:返回一个整数或一个常数,该参数取值可以指明触发QueryUnload事件的原因。
     UnloadMode取值含义如下所示:

    常数 描述
    vbFormControlMenu 0 单击标题栏控制菜单中的[关闭]命令,或双击该标题栏控制菜单图标或单击标题栏右边的[×]按钮
    VbFormCode 1 在代码中调用Unload(卸载)语句
    VbAppWindows 2 当前的Microsoft Windows操作环境会话完毕
    VbAppTaskManager 3 Microsoft Windows任务管理器正在关闭应用程序
    VbFormMDIForm 4 MDI(多文档界面)子窗体随着MDI窗体正在关闭
    VbFormOwner 5 窗体随着其所有者的关闭而关闭

    代码

      因为我发现如果子窗体是正常状态的话,直接关闭主窗体,或者直接关闭该子窗体,VB是不会停止运行的。所以,我就想到了在卸载父窗体之前先让子窗体最大化,然后再卸载掉子窗体。
      具体请看下面的代码:

    Private Sub MDIForm_QueryUnload(Cancel As Integer, UnloadMode As Integer)
        Dim f As Form
        For Each f In Forms
            '如果该窗体是最小化状态
            If f.Name <> FrmMain.Name And f.WindowState = 1 Then
                '让窗体最大化或正常
                f.WindowState = 2
                Unload f
            End If
        Next
    End Sub

      这样就解决了在子窗体是最小化状态时,关闭父窗体时VB会停止运行的问题。同上,在各个子窗体的Form_QueryUnload事件中,如果子窗体是最小化状态,那就先让子窗体最大化。

    Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
        If Me.WindowState = 1 Then
            Me.WindowState = 2
        End If
    End Sub

    Form_Unload()事件中怎么中断该过程

      一般我们在一个过程中,如果想提前退出这个过程的话,只要在你想要停止的地方写一个 Exit Sub 就可以了,可是当我把它写进Form_unload事件中时,却发挥不了作用了。
      Exit Sub的作用是结束当前的过程,它后面的代码将不会再执行。因为本来就是窗体卸载过程,如果用Exit Sub结束此过程,那么窗体还是会被卸载。
      那么怎么才能取消窗体的卸载过程呢?

    Private Sub Form_Unload(Cancel As Integer)

      当把其中的Cancel参数设置成0以外的数字或者让Cancel等于True时,那么就可以取消窗体卸载。

    Private Sub Form_Unload(Cancel As Integer)
        a = MsgBox("您是否确定退出?", vbOKCancel + vbExclamation + 0, "退出")
            '如果点击“确定”按钮,则Cancel=1
            If a = 1 Then
                Cancel = 1
            '否则,Cancel = 0
            else
                Cancel = 0
            End If
    Sub

      当初,我不知道要这样做,就是没有熟悉窗体的卸载过程以及它的用法,没有明白过程中的参数是怎么回事。当我们不知道一个过程怎么使用的时候,可以先百度一下过程之中参数的用法,或许就会明白了。

    Form_Terminate()

      关于这个事件的具体用法,小编就不知道了。我只是知道它发生在Form_Unload事件之后,而且不可以中断卸载。如果大家知道怎么使用的话,还请不吝赐教。

    展开全文
  • 方法是在“文件”菜单中选择“保存工程”或者点击工具栏上的磁盘按钮,保存文件到自己的文件夹(如果没有就新建一个)以“MyForm”为文件名(如果能用中文就输入汉字“窗体”)。LC42DS60C保存两次,一次是窗体,另...

    程序设计是指为计算机编制一些软件和程序。学习的目的是理解计算机的工作方式和运行的方式。

    VB是运行在Windows视窗操作系统上,设计程序的思想在于在窗口中放置对象和针对对象设计代码。

    (一)启动VB:单击“开始”-“程序”-“Microsoft Visual Basic 6.0 中文版”选择“标准EXE”,单击“打开”进入窗口。

    (二)VB窗口

    1、标题栏:在最上面蓝色标题是“工程1-。..”,是我们当前正在设计的程序,被称作“工程1”。

    2、菜单栏:菜单栏在第二行,包含一组菜单,菜单中有各种命令,我们应该理解操作计算机就是向计算机提供一系列的指令。

    (1)“文件”菜单,要求记住“保存”命令,VB要保存两次,注意保存文件到自己的文件夹中。(本书中双引号当中均是指操作命令)

    (2)“视图”菜单,显示各个窗口,如果一个窗口找不着了,就到这个菜单中找出来。

    (3)“运行”菜单,第一个“启动”命令要记住,可以运行我们的程序。

    3、工具栏:第三行是工具栏,工具栏是一些最常用的命令,而且是用图标表示的,因而便于形象记忆和操作,要求记住“启动”按钮。(在视窗操作系统中,我们不仅要会认识文字说明,还要特别留意图标含义。)

    4、工作区:工作区占据窗口的绝大部分,从左向右包括工具箱、窗体、和属性窗口。

    (1) 工具箱:在工作区的左侧,包含许多编程用到的基本对象,被称作“控件”。

    (2) 窗体:中间的灰色的窗口,LC40DT68C是我们设计的程序的基本框架,所有的对象都放在这个窗口当中。

    (3)小窗口:在右侧有三个纵向排列的窗口。

     

    ①最上面是工程窗口,上边有三个按钮,中间的按钮是显示对象窗口;

    ②下面是属性窗口,属性是一个对象的名称、大小、颜色等等;

    ③最下面是布局窗口,里面显示程序运行时的位置,LC40GS60DC拖动里面的小框可以改变程序的显示位置。

    4、下面修改窗体的属性,在右侧的属性窗口中找到Caption项,在它右边的格子里点一下鼠标左键,然后输入“窗体”两个字,观察一下工作区中的窗体的标题是否已经改变,Caption是设置一个应用程序的窗口标题,再在属性窗口中找到BackColor项,单击右边格子里的黑色三角按钮上点击一下鼠标左键,在弹出的面板上边的一行文字中选择“调色板”标签,选中浅紫色,观察一下工作区中间的窗体的变化。单击工具栏上的启动按钮,运行一下我们的程序,看一下这个窗口,还不错吧?

    单击“关闭”按钮(或者Alt+F4),回到窗体中,LC40GS82DC在属性窗口中找到Icon项,在右边的格子里点一下鼠标左键再点一下三个小点,在弹出的“加载图标”对话框中,点击“向上”按钮退一步,再选择打开Common,再选择打开Graphics,再选择打开Icon,再打开Misc,在里面找一个图标,单击打开,再看一下工作区中的窗体的标题栏左侧是否有一个图标。单击“启动”按钮,运行一下程序,然后最小化,看一下任务栏上的图标找到我们的程序,单击一下图标恢复窗口。

    关闭程序回到属性窗口,找到Picture属性,在右边的格子里单击一下鼠标左键,打开“加载图片”对话框,找一幅较大的背景图片打开,观察一下工作区窗体的变化。单击“启动”LC40TS86N按钮运行一下程序,很漂亮的一个窗口是吧?

    关闭程序,同样再修改Font属性和ForeColor属性,属性都是按照字母排序的,在最后的WindowState属性中选择2-Maxing最大化,运行一下程序看一下效果。

    如何保存自己的程序呢?方法是在“文件”菜单中选择“保存工程”或者点击工具栏上的磁盘按钮,保存文件到自己的文件夹(如果没有就新建一个)以“MyForm”为文件名(如果能用中文就输入汉字“窗体”)。LC42DS60C保存两次,一次是窗体,另一次是工程。

    保存好的程序要编译成可以在Windows下运行的可执行程序,方法是选择“文件”菜单中的“生成工程1.exe”命令,以“窗体”为文件名保存文件到自己的文件夹,这个程序关闭VB后也可以运行,退出VB,打开自己的文件夹,找到程序,运行一下看看。

    本节主要讲述了VB的基本窗口和窗体属性,以后会经常用到。

    展开全文
  • VBA 用户窗体的认识

    2020-08-18 21:19:49
    今天学的是VBA用户窗体~可算到这里来,有点以前大学学VB的味道了 一、插入新的用户窗体 插入用户窗体很简单啦,在VBE的工程下右击选择插入——用户窗体就可以了。 如果下面这个工具箱关闭了,可以在菜单栏的...

    今天学的是VBA用户窗体~可算到这里来,有点以前大学学VB的味道了

     

    一、插入新的用户窗体

    插入用户窗体很简单啦,在VBE的工程下右击选择插入——用户窗体就可以了。

    如果下面这个工具箱关闭了,可以在菜单栏的视图里面调出来

    二、认识工具箱中的控件

    我们根据这张图,从上到下依次说一下:

    第一排:

    ①箭头:移动按钮,可以移动其他控件

    ②标签:Label,只显示文本

    ③文本框:TextBox输入文本的

    ④复合(组合)框:Combox 与ListBox不同,允许输入没有出现的值

    ⑤列表框:ListBox 列表

    ⑥复选框:CheckBox,选中为True。

    ⑦单选框:OptionButton,单选啦选中后其他的就不会被选中

    ⑧切换框:ToggleButton

    第二排

    ①框架:Frame,一般用来把单选框框住

    ②命令:CommandButton,

    ③TabStrip:

    ④多页:MultiPage

    ⑤滚动条:ScrollBar

    ⑥旋转按钮:

    ⑦图像:Image

    ⑧RefEdit

    命名约定(就是控件名字太长了,一般大家都这样简写):

     

    三、基本操作

    ① 要显示用户窗体的话,可以在模块中这样设置:

    Sub showForm()
        UserForm1.Show
    End Sub

    这样的窗体是模态化的,也就不能点击EXCEL其他地方做其他事,不是很方便,非模态化只需要这样操作:

    Sub showForm()
        UserForm1.Show vbModeless
    End Sub

    还可以通过变量进行显示:

    Sub showForm()
        Dim myForm As String
        myForm = "UserForm1"
        UserForms.Add(myForm).Show vbModeless
    End Sub

    ② 加载用户窗体

    如果用户窗体比较复杂,需要较长时间显示的话,可以把它先加载到内存中去,这样下次显示窗口操作就很快了,当然了这个操作本身不会显示出窗体

    Load UserForm1

    ③ 关闭用户窗体

    虽然上面的加载用户窗体操作不会显示窗体,但是卸载窗体动作是会关闭窗体的哟,比如这样:

    Unload UserForm1

    如果是在窗体本身中运行,可以直接用Me

    Unload Me

    如果只是想隐藏窗口的话,程序还在后台运行的话,可以这样:

    UserForm1.Hide

    也可以这样

    Me.Hide

    四、简单示例

    录入个人信息,比如画了这样一个框框,在框框里输入完了就写入到工作表上的下一个空行去,怎么实现呢?

    其实就点写入的时候进行了操作,所以只需要再点击“写入”这个按钮时才进行了一系列操作,具体代码如下:

    Private Sub CommandButton1_Click()
        Dim blankRow As Long
        Dim name As String
        Dim gender As String
        
        If Me.TextBox1.Text = "" Then MsgBox "请输入姓名"
        If Me.OptionButton1.Value Then gender = "男"
        If Me.OptionButton2.Value Then gender = "女"
        If Me.OptionButton3.Value Then gender = "不知道"
    
        name = Me.TextBox1.Text
    
        blankRow = Sheets("Sheet1").Range("A1048576").End(xlUp).row + 1
        Sheets("Sheet1").Range("A" & blankRow).Value = name
        Sheets("Sheet1").Range("A" & blankRow).Offset(0, 1).Value = gender
        
        Me.TextBox1.Text = "" 
    End Sub
    
    Private Sub CommandButton2_Click()
        Unload Me
    End Sub

    CommandButton1:写入按钮

    CommandButton2:退出按钮

    TextBox1:姓名边上的输入框

    OptionButton1~3:性别

     

    明天继续学啦~

    展开全文
  • VB试题.doc

    2012-12-15 21:16:57
    2.在以下窗体没有采用的控件是( B )。 A.文本框 B 垂直滚动条 C.框架 D 命令按钮 3.滚动条控件(如图所示)的Largechange属性所设置的是( A ) A. 单击滚动条和滚动箭头之间的区域时,滚动条控件Value属性值...
  • 9、vb6单击按钮最小化窗体.txt 10、vb6点击最大化最小化和关闭(有上角的)触发什么事件.txt 11、vb6调用API函数模拟按下Alt键.txt 12、vb6读写txt内容.txt 13、vb6根据MDPlay设计进度框.txt 14、vb6后台发送邮件....
  • vb学生成绩管理系统

    2013-06-28 08:55:24
     理解面向对象的软件设计基本理论,学习VB软件设计的基本方法,熟悉一般软件项目开发的基本步骤,培养运用VB解决实际问题的能力和技巧。 课程设计的主要内容和要求(包括原始数据、技术参数、设计要求、工作量要求...
  • VB编程资源大全

    2007-10-17 20:47:23
    useanicursor.zip 在VB中使用Ani光标(6KB) 94,maxmin1.zip 控制窗口尺寸1(6KB) 95,maxmin2.zip 控制窗口尺寸2(8KB) 96,dissysmenu.zip 将任务栏的关闭按钮设为无效(6KB) 97,hidemenu....
  • VB6.0已能够解决该问题,只是帮助中没有明确说明,并且没有描述到一些关键功 能,由于以前的版本中可以动态创建进程外服务:如果对象是外部可创建的,可在 Set 语句中用 New 关键字、CreateObject 或 GetObject 从...
  • 修改无页面时未禁用关闭按钮的问题 修改vbalTabControl,在用BarEnabled?设置Enabled属性的时候同时设定CanClose?,防止用户在禁用时点击关闭按钮. 在弹出对话框之前进行菜单的状态更新操作,防止菜单项选中状态更新...
  • VB窗体上设计完成界面后(你可以大胆的设置各控件的属性,Addin尽量将其翻译为tkinter的控件属性),点工具栏上的VisualTkinter(图标为一片橙红色羽毛),再点'生成代码'按钮,即可生成可运行的Python代码,可以...
  • 最小化和关闭按钮 4.1.4 移动没有标题栏的窗体 4.2 改变窗体形状 4.2.1 圆形或椭圆形窗体 4.2.2 多边形窗体 4.3 浮动窗体与透明窗体 4.3.1 浮动窗体 4.3.2 透明窗体 4.4 动态打开和关闭窗口 第5章Windows...
  • VB窗体上设计完成界面后(你可以大胆的设置各控件的属性,Addin尽量将其翻译为tkinter的控件属性),点工具栏上的VisualTkinter(图标为一片羽毛),再点'生成代码'按钮,即可生成可运行的Python代码,可以拷贝至...
  • 实例247 禁用窗体最大化、最小化或关闭快捷菜单 实例248 使窗体标题栏不响应鼠标双击 实例249 程序运行时隐藏标题栏 8.5 窗体形状应用实例 实例250 椭圆形窗体界面 实例251 钻石形窗体 实例252 创建透明窗体 ...
  • 实例247 禁用窗体最大化、最小化或关闭快捷菜单 实例248 使窗体标题栏不响应鼠标双击 实例249 程序运行时隐藏标题栏 8.5 窗体形状应用实例 实例250 椭圆形窗体界面 实例251 钻石形窗体 实例252 创建透明窗体 ...
  • 打冰雹游戏源程序

    2013-06-16 00:07:04
    单击command开始按钮可进入后面窗体,退出按钮关闭窗体,帮助按钮查看游戏规则。 核心代码如下: 窗体1—开始界面 Private Sub Command1_Click() Form2.Show Unload Form1 Timer1.Enabled = True’开始按钮,控制...
  • CodeSmith Professional v5.1.1.8242 破解(BUG修正版)

    千次下载 热门讨论 2009-05-24 02:11:26
    2) 当打开一些窗体的时候,比如Options的窗体,重新调整窗口大小,然后按OK按钮,会出现程序异常,并导致CodeSmith进程退出 3) CodeSmith发生错误的时候会将异常信息记录到EventLog中,但是当在Vista,Windows 7等...
  • java源码包---java 源码 大量 实例

    千次下载 热门讨论 2013-04-18 23:15:26
     Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java文件传输实例不可错过,Java网络编程技能的提升很有帮助。 Java聊天程序,包括服务端和...
  •  很多人觉得学习Visual Basic没有用,事实上,Visual Basic系列的编程语言包括VB、VBA、VBScript等,可以写网页、办公自动化编程、应用编程。在一些其他公司的应用软件中也是可以用VBA的,例如Corel Draw。这里举几...
  • Private SubCommand3_Click () '删除操作人员的命令按钮 '显示对话框,是否删除操作人员 t = MsgBox("你是否确定删除该操作员!", vbOKCancel, "确定吗?") If t = 1 Then '如果返回1,则进行删除操作 '判断是否有...
  • java源码包2

    千次下载 热门讨论 2013-04-20 11:28:17
     Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java文件传输实例不可错过,Java网络编程技能的提升很有帮助。 Java聊天程序,包括服务端和...
  • java源码包3

    千次下载 热门讨论 2013-04-20 11:30:13
     Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java文件传输实例不可错过,Java网络编程技能的提升很有帮助。 Java聊天程序,包括服务端和...
  • java源码包4

    千次下载 热门讨论 2013-04-20 11:31:44
     Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java文件传输实例不可错过,Java网络编程技能的提升很有帮助。 Java聊天程序,包括服务端和...
  • Java局域网通信——飞鸽传书源代码 28个目标文件 内容索引:JAVA源码,媒体网络,飞鸽传书 Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java...
  • Java局域网通信——飞鸽传书源代码 28个目标文件 内容索引:JAVA源码,媒体网络,飞鸽传书 Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java...
  • vc++ 开发实例源码包

    2014-12-16 11:25:17
    vb实例。 p2p+technology 文档。 P2P视频技术源码(含开发文档) 目前的协议有如下一些特点: 1) 客户向服务器发送请求, 每个请求的长度不定. 请求的长度在第一个INT中指定. 2) 每个服务器通常会向多种客户提供服务...
  • 利用输入法注入DLL

    2013-05-19 22:45:22
    运行一下看看,是不是窗体中标题栏和按钮上的文字都没有了,因为我们把函数 LpkDrawTextEx替换成自己的函数HookProc1了。这个函数有10个参数,其中几个好像是字符 串指针,似乎可以用来截获窗体要显示的文字,然后...
  • vc++ 应用源码包_2

    2012-09-15 14:27:40
    p2p vb实例。 p2p+technology文档。 P2P视频技术源码(含开发文档) PcShare 内含远程控制、进程管理、文件操作、视频控制、注册表操作、客户端服务器端。 redui_src_v0.9.130(DirectUI 3D) DirectUI 3D界面库...

空空如也

空空如也

1 2 3
收藏数 44
精华内容 17
关键字:

vb窗体没有关闭按钮