在VB中基于消息机制扩展文件打开对话框功能研究
vb setwindowlong 用法-概述说明以及解释
vb setwindowlong 用法-概述说明以及解释1.引言1.1 概述在编写VB(Visual Basic)程序时,经常需要与窗口进行交互,获取或修改窗口的属性。
其中一个常用的方法是使用SetWindowLong 函数来获取或修改窗口的扩展样式(extended styles)和用户数据(user data)。
SetWindowLong 函数允许程序员在运行时动态地修改窗口类的属性,比如更改窗口的风格、设置用户数据等。
这为程序的界面设计和功能实现提供了更多的灵活性和扩展性。
本文将详细介绍VB 中SetWindowLong 函数的用法,包括概述、用法示例和实际应用,帮助读者更好地理解和应用该函数。
1.2 文章结构本文主要分为三部分,即引言、正文和结论。
在引言部分,将介绍该文章的概述、结构和目的,为读者提供全面的了解。
在正文部分,将详细介绍vb setwindowlong的概述、用法示例和实际应用。
通过实例展示vb setwindowlong在实际操作中的具体用法,帮助读者更好地理解和掌握该功能。
在结论部分,将对vb setwindowlong的用法进行总结,分析其优缺点,并展望其未来发展方向,为读者提供更深入的思考和参考。
1.3 目的本文旨在介绍vb setwindowlong的用法,帮助读者更好地理解该函数的功能和操作方式。
通过详细讲解vb setwindowlong的概述、用法示例和实际应用,读者可以掌握如何在vb编程中正确地使用该函数,并了解其在实际项目中的应用场景。
同时,本文还将对vb setwindowlong的优缺点进行分析,为读者提供更全面的认识。
最后,展望vb setwindowlong的未来发展,为读者提供一些关于该函数可能的发展方向和趋势的思考。
通过本文的阅读,读者可以加深对vb编程技术的理解,提高自己在项目开发中的实际能力。
2.正文2.1 vb setwindowlong 概述在VB(Visual Basic)编程中,SetWindowLong函数是一种用于设置窗口长整型值的函数。
VB弹出对话框
'文件名:弹出漂亮对话框'版本:1.0.0.1'作者:来水美树QQ 659354953'代码简单,也是可以给新手研究研究的,,‘新建一个EXE工程‘添加一个FORM2 名为MSGFOEM‘新建一个模块代码如下Option ExplicitPublic Const BDR_RAISEDOUTER = &H1Public Const BDR_SUNKENOUTER = &H2Public Const BDR_RAISEDINNER = &H4Public Const BDR_SUNKENINNER = &H8Public Const BDR_OUTER = &H3Public Const BDR_INNER = &HCPublic Const BDR_RAISED = &H5Public Const BDR_SUNKEN = &HAPublic Const EDGE_RAISED = (BDR_RAISEDOUTER Or BDR_RAISEDINNER) Public Const EDGE_SUNKEN = (BDR_SUNKENOUTER Or BDR_SUNKENINNER) Public Const EDGE_ETCHED = (BDR_SUNKENOUTER Or BDR_RAISEDINNER) Public Const EDGE_BUMP = (BDR_RAISEDOUTER Or BDR_SUNKENINNER) Public Const BF_LEFT = &H1Public Const BF_TOP = &H2Public Const BF_RIGHT = &H4Public Const BF_BOTTOM = &H8Public Const BF_TOPLEFT = (BF_TOP Or BF_LEFT)Public Const BF_TOPRIGHT = (BF_TOP Or BF_RIGHT)Public Const BF_BOTTOMLEFT = (BF_BOTTOM Or BF_LEFT)Public Const BF_BOTTOMRIGHT = (BF_BOTTOM Or BF_RIGHT)Public Const BF_RECT = (BF_LEFT Or BF_TOP Or BF_RIGHT Or BF_BOTTOM)Public 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 LongPublic Declare Function CreateRoundRectRgn Lib "gdi32" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long, ByVal X3 As Long, ByVal Y3 As Long) As LongPublic Declare Function CreateSolidBrush Lib "gdi32" (ByVal crColor As Long) As LongPublic Declare Function CreateRectRgn Lib "gdi32" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As LongPublic Declare Function DeleteObject Lib "gdi32" (ByVal hObject As Long) As LongPublic Declare Function FrameRgn Lib "gdi32" (ByVal hdc As Long, ByVal hRgn As Long, ByVal hBrush As Long, ByVal nWidth As Long, ByVal nHeight As Long) As LongPublic Declare Function SetWindowRgn Lib "user32" (ByVal hwnd As Long, ByVal hRgn As Long, ByVal bRedraw As Boolean) As LongPublic Declare Function MessageBeep Lib "user32" (ByVal wType As Long) As LongPublic Declare Function DrawEdge Lib "user32" (ByVal hdc As Long, qrc As RECT, ByVal edge As Long, ByVal grfFlags As Long) As LongPublic Declare Function SetCapture Lib "user32" (ByVal hwnd As Long) As LongPublic Declare Function ReleaseCapture Lib "user32" () As LongPublic Type RECTTop As LongLeft As LongRight As LongBottom As LongEnd TypePublic Enum nTypevbICONHAND = &H10&vbICONQUESTION = &H20&vbICONEXCLAMATION = &H30vbICONASTERISK = &H40&End EnumPublic Function DrawFillRount(ByVal hdc As Long, ByVal X As Long, Y As Long, ByV al nWidth As Long, ByVal nHeight As Long, ByVal X3 As Long, Y3 As Long, ByVal crColor As Long)Dim Brush As LongDim Rgn As LongBrush = CreateSolidBrush(crColor)Rgn = CreateRoundRectRgn(X, Y, nWidth, nHeight, X3, Y3)FrameRgn hdc, Rgn, Brush, 1, 1DeleteObject BrushDeleteObject RgnEnd Function‘消息框MsgDialog “”“”“” “”Public Function MsgDialog(ByVal lpMsgText As String, ByRef wType As nType, ByVal lpCaption As String, ByVal crColor As Long)MsgForm.Showbel1.Caption = lpCaptionbel2.Caption = lpMsgTextbel2.ForeColor = crColorbel1.ForeColor = crColorMessageBeep wTypeEnd FunctionPublic Function DrawButtonDown(ByVal hdc As Long, ByVal X As Long, Y As Long, ByVal nWidth As Long, ByVal nHeight As Long)Dim BRECT As RECTBRECT.Top = YBRECT.Left = XBRECT.Right = nWidthBRECT.Bottom = nHeightDrawEdge hdc, BRECT, EDGE_RAISED, BF_RECTEnd FunctionPublic Function DrawButtonUp(ByVal hdc As Long, ByVal X As Long, Y As Long, ByVal nWidth As Long, ByVal nHeight As Long)Dim BRECT As RECTBRECT.Top = YBRECT.Left = XBRECT.Right = nWidthBRECT.Bottom = nHeightDrawEdge hdc, BRECT, EDGE_SUNKEN, BF_RECTEnd FunctionForm2 代码Dim BW, BH As LongPrivate Sub Form_Load()BW = Picture2.ScaleWidth / Screen.TwipsPerPixelXBH = Picture2.ScaleHeight / Screen.TwipsPerPixelYPicture1.Visible = FalseIf Dir(App.Path & "\Sink.Bmp") = "" Then'Me.PaintPicture Picture1.Picture, 0, 0, Me.ScaleWidth, Me.ScaleHeight ElsePicture1.Picture = LoadPicture(App.Path & "\Sink.Bmp")End IfEnd SubPrivate Sub Form_Paint()Dim W, H As LongDim Rgn As LongW = Me.ScaleWidth / Screen.TwipsPerPixelXH = Me.ScaleHeight / Screen.TwipsPerPixelYMe.PaintPicture Picture1.Picture, 0, 0, Me.ScaleWidth, Me.ScaleHeightRgn = CreateRoundRectRgn(0, 0, W, H, 4, 4)SetWindowRgn Me.hwnd, Rgn, TrueCall DrawFillRount(Me.hdc, 0, 0, W, H, 4, 4, 0)End SubPrivate Sub Image1_Click()EndEnd SubPrivate Sub Picture2_Click()Unload MeEnd SubPrivate Sub Picture2_DblClick()DrawButtonUp Picture2.hdc, 0, 0, BW, BHpCaption "确定", &HFF00FFDrawFillRount Picture2.hdc, 0, 0, BW, BH, 0, 0, 0Unload MeEnd SubPrivate Sub Picture2_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)DrawButtonUp Picture2.hdc, 0, 0, BW, BHpCaption "确定", &HFF00FFDrawFillRount Picture2.hdc, 0, 0, BW, BH, 0, 0, 0End SubPrivate Sub Picture2_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)If X > 0 And X < Picture2.Width And Y > 0 And Y < Picture1.Height ThenpPicturepCaption "确定", &HFF00FFDrawButtonDown Picture2.hdc, 0, 0, BW, BHDrawFillRount Picture2.hdc, 0, 0, BW, BH, 0, 0, 0DrawFillRount Picture2.hdc, 1, 1, BW - 1, BH - 1, 0, 0, &HFFFF&SetCapture Picture2.hwndElsepPicturepCaption "确定", &HFF00FFDrawButtonDown Picture2.hdc, 0, 0, BW, BHDrawFillRount Picture2.hdc, 0, 0, BW, BH, 0, 0, 0ReleaseCaptureEnd IfEnd SubPrivate Sub Picture2_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) DrawButtonDown Picture2.hdc, 0, 0, BW, BHpCaption "确定", &HFF00FFDrawFillRount Picture2.hdc, 0, 0, BW, BH, 0, 0, 0End SubPrivate Sub Picture2_Paint()pPicturepCaption "确定", &HFF00FFDrawButtonDown Picture2.hdc, 0, 0, BW, BHDrawFillRount Picture2.hdc, 0, 0, BW, BH, 0, 0, 0End SubPrivate Sub pCaption(ByVal lpStr As String, ByVal crColor As Long)Picture2.CurrentX = (Picture2.ScaleWidth - Picture2.TextWidth(lpStr)) / 2Picture2.CurrentY = (Picture2.ScaleHeight - Picture2.TextHeight(lpStr)) / 2Picture2.ForeColor = crColorPicture2.Print lpStrEnd SubPrivate Sub pPicture()BitBlt Picture2.hdc, 0, 0, BW, BH, Me.hdc, 80, 80, vbSrcCopyEnd Sub。
VB通用对话框的功能
CommonDialog 控件提供一组标准的操作对话框,进行诸如打开和保存文件,设置打印选项,以及选择颜色和字体等操作。
通过运行 Windows 帮助引擎控件还能显示帮助。
CommonDialog 控件在 Visual Basic 和 Microsoft Windows 动态连接库 Commdlg.dll 例程之间提供了接口。
为了用该控件创建对话框,必须要求 Commdlg.dll 在 Microsoft Windows \System 目录下。
为了在应用程序中使用 CommonDialog 控件,应将其添加到窗体上并设置属性。
控件显示的对话由控件的方法决定。
运行时,调用相应方法后将显示对话框或执行帮助引擎;设计时在窗体上将 CommonDialog 控件显示成一个图标。
此图标的大小不能改变。
CommonDialog 控件可以显示如下常用对话框:“打开”“另存为”“颜色”“字体”“打印”注意无法指定对话框显示在什么地方。
要使用 CommonDialog 控件若未添加 CommonDialog 控件,则应从“工程”菜单中选定“部件”,将控件添加到工具箱中。
在标记对话的“控件”中找到并选定控件,然后单击“确定”按钮。
单击工具箱中的“CommonDialog”控件并在窗体上绘制该控件。
在窗体上绘制 CommonDialog 控件时,控件将自动调整大小。
象Timer 控件一样,CommonDialog 控件在运行时不可见。
运行时,请适当使用下表所列方法显示需要的对话。
方法显示的对话ShowOpen 打开ShowSave 另存为ShowColor 颜色ShowFont 字体ShowPrinter 打印ShowHelp 调用 Windows“帮助”示例代码:下例显示“打开”对话框然后在信息框中显示所选的文件名:Private Sub Command1_Click()' 设置“CancelError”为 TrueCommonDialog1.CancelError = TrueOn Error GoTo ErrHandler' 设置标志CommonDialog1.Flags = cdlOFNHideReadOnly' 设置过滤器CommonDialog1.Filter = "All Files (*.*)|*.*|Text Files" & _ "(*.txt)|*.txt|Batch Files (*.bat)|*.bat"' 指定缺省的过滤器CommonDialog1.FilterIndex = 2' 显示“打开”对话框CommonDialog1.ShowOpen' 显示选定文件的名字MsgBox CommonDialog1.filenameExit SubErrHandler:' 用户按了“取消”按钮Exit SubEnd Sub---------------------------------下例显示“打印”对话框。
VB消息框(MsgBox)和输入对话框(InputBox)
[教案](八)对话框授课方式:讲授法授课学时:2学时教学目的:通过本次课的学习,学生应该掌握能灵活使用消息框(MsgBox)和输入对话框(InputBox)和通用对话框,体现用户界面更具有交互性。
能灵活使用控件数组,并能编写出响应事件的代码。
教学重点和难点:1.消息框(MsgBox)和输入对话框(InputBox)的语法格式;2.各种属性的灵活使用。
教学过程:消息框(MsgBox)和输入对话框(InputBox)和通用对话框一、消息框(MsgBox)和输入对话框1.了解其在VB中的用途。
2.掌握基语法格式3.实际中的应用二、通用对话框1.用途介绍其在VB中的用途。
2.主要属性3.在实际中应用实例《Visual Basic程序设计语言》授课教案[讲稿](八)对话框一、消息框(MsgBox)和输入对话框我们已学习了两个函数的语法格式,下面通过例子来说明其在实际的用法。
1 InputBox示例:设计一个程序,将输入的时、分和秒的和转换成秒数。
要求从输入对话框输入时、分和秒数。
事件过程与代码:Private Sub Command1_Click()Dim h As Integer, m As Integer, s As IntegerDim x As Longh = Val(Text1.Text)m = Val(Text2.Text)s = Val(Text3.Text)x = h * 3600 + m * 60 + sLabel1.Caption = "共计" & Str(x) & "秒"End SubPrivate Sub Command2_Click()Text1.Text = ""Text2.Text = ""Text3.Text = ""End SubPrivate Sub Command3_Click()Text1.Text = InputBox("时间中的小时数", "请输入", 0)End SubPrivate Sub Command4_Click()Text2.Text = InputBox("时间中的分钟数", "请输入", 0)End SubPrivate Sub Command5_Click()Text3.Text = InputBox("时间中的秒数", "请输入", 0)End Sub2、MsgBox函数例题:•将文本框中的英文字母进行大小写切换。
VB消息框
If MsgBox("确认退出吗?", vbYesNo + vbQuestion) = vbYes ub
希望你可以搞定。
Private Sub Form_Unload(Cancel As Integer)
If MsgBox("确认退出吗?", vbYesNo + vbQuestion) = vbYes Then
Unload Me
Else
Cancel = 1
End If
End Sub
(点击“退出”命令按钮时退出可以这样写)
这个消息框叫做message是用来弹出程序运行时候的一些提示信息也可以作为信息输入而你的那个用来确认退出实际是作为信息输入的可以这样写
VB消息框
这个消息框叫做message,是用来弹出程序运行时候的一些提示信息,也可以作为信息输入,而你的那个用来确认退出实际是作为信息输入的,可以这样写:
(这是点击程序右上角关闭程序时用的)
vb通用对话框名词解释__概述说明以及解释
vb通用对话框名词解释概述说明以及解释1. 引言1.1 概述在软件开发中,对话框是一种常见的用户界面元素,用于与用户进行交互和获取输入。
VB通用对话框是一种基于Visual Basic编程语言的对话框类型,具有广泛的应用领域和重要性。
本文将详细介绍VB通用对话框的概念、重要性、应用场景以及常见名词解释和功能解析。
此外,还将提供实际操作指南与技巧,并展望VB通用对话框未来可能的发展趋势。
1.2 vb通用对话框概念说明VB通用对话框是使用Visual Basic编程语言开发的一种标准化对话框。
它为开发人员提供了一套预定义的、可直接调用和使用的界面组件,以便更快速地构建用户友好的应用程序界面。
通过使用VB通用对话框,开发人员可以轻松地创建窗体、按钮、文本框等基本控件,并实现与用户的交互。
它提供了丰富的功能库和方法,使得开发过程更加高效和便捷。
1.3 目的本文旨在帮助读者全面了解VB通用对话框在软件开发中的重要性和作用。
通过介绍其应用场景以及常见名词解释和功能解析,读者可以更好地理解如何使用VB通用对话框构建用户友好的界面和实现与用户的交互。
此外,本文还提供了实际操作指南与技巧,帮助读者掌握基本的VB通用对话框的创建和使用方法。
最后,本文还展望了VB通用对话框未来可能的发展趋势,旨在激发读者对该领域的兴趣并为其未来的研究或应用提供参考。
2. VB通用对话框的重要性和应用场景2.1 为什么需要VB通用对话框:VB通用对话框是一个在软件开发中非常重要的工具,它可以提供给用户一个交互界面,通过该界面用户可以进行各种操作和输入。
VB通用对话框的存在使得软件开发更加高效和便捷,因此它成为了不可或缺的一部分。
2.2 VB通用对话框在软件开发中的作用:VB通用对话框可以帮助程序员创建各种功能丰富的用户界面。
它提供了一系列常见控件,如按钮、文本框、复选框等,以及与这些控件交互的方法和属性。
使用VB通用对话框,开发者可以快速创建一个简单易用、美观大方的用户界面,并将其与应用程序逻辑进行连接。
浅谈VB的通用对话框《Common Dialog》控件的使用
本栏目责任编辑:谢媛媛软件设计开发浅谈VB 的通用对话框《Common Dialog 》控件的使用吐尔逊江·阿布都热合曼,阿不都热合曼·艾合买提(新疆和田师范专科学校数学与信息学院,新疆和田848000)摘要:通用对话框《CommonDialog 》控件提供诸如打开和保存文件、设置打印选项、选择颜色和字体等操作的一组标准对话框。
运行Windows 帮助引擎时,控件还能够显示帮助我们介绍了《Visual Basic 程序设计》的通用对话框《Common Dia-log 》控件的基本属性和案例来详细讨论他的使用。
关键词:通用对话框《CommonDialog 》的属性;方法;案例中图分类号:TP311文献标识码:A文章编号:1009-3044(2016)05-0076-02Discussion on the Use of VB Common Dialog Box "Dialog Common"control Tursundyan Abdou Reh Man ,Ai Komti Abdurahman(School of mathematics and information,Hotan Teachers College,Hetian 848000,China)Abstract:The common dialog box "CommonDialog"provides a set of standard dialog boxes,such as opening and saving files,setting print options,selecting colors,and fonts.Run the windows help engine,the control is also able to display help us to intro-duce the basic properties and case of the visual basic program design "the common dialog box controls the common dialog"to discuss in detail the use of his.Key words:common dialog box "CommonDialog"attribute;method;case我们知道在使用《Visual Basic 程序设计》的时候有很多常用的控件,这就是VB 的基本控件。
VB程序设计第6章对话框的设计
其中: • Prompt为必需的字符串表达式参数,提 供显示在对话框中的提示文本。 • Title为可选字符串表达式参数,提供标题 显示在对话框的标题栏中。 • Default为可选字符串表达式参数,提供 输入框的缺省输入文本。 • Xpos和Ypos都是可选的数值表达式,成 对出现,指出对话框左上角的屏幕坐标。 • InputBox函数返回文本框中输入的内容, 为字符串类型。
(1)输入对话框 • 创建输入对话框的标准函数是 InputBox函数,该函数显示一个接 收用户输入的对话框,对话框中显示 提示文本,等待用户输入或按下按钮, 并返回文本框的内容。 • InputBox函数的语法格式为:
InputBox (prompt[,title][,default][,xpos][,ypos][,helpfile,context])
模式对话框是在继续操作应用程序的其他部 分之前必须被关闭的。而无模式对话框允许 在对话框与其他窗体之间转移焦点而不必关 闭对话框。 Show方法的两个可选参数分别是style和 ownerform。如果要显示的对话框是模式 的,则Style取值为1或vbModoal;如果 要显示的对话框是无模式的,则Style取值 为0或vbModoaless。Ownerform参数 决定该对话框是作为哪一个窗体的子窗体的。
Байду номын сангаас
• ⑤标志(Flags属性):用来修改每 个具体对话框的默认操作。 • ⑥缺省扩展名(DefaultExt属性): 设置在对话框中的缺省扩展名
• ⑦文件最大长度(MaxFileSize属 性):设置文件名的最大字节数。
• ⑧过滤器索引(FilterIndex属性): 用索引值来指定对话框使用哪一个过 滤器。 • ⑨取消引发错误(CancelError属 性):决定当用户单击对话框上的 “取消”按钮时,是否会显示一个报 错信息的消息框。 • 注:CancelError属性的设置方法 对其他几种对话框也同样适用。
vb文件菜单通用对话框
计算机软件技术基础 Visual Basic 程序设计
③事件: ★PathChange事件:路径被FileName或Path
属性改变时发生。 ★PatternChange事件:列表样式被FileName
或Path属性改变时发生。
计算机软件技术基础 Visual Basic 程序设计
4.文件系统控件的同步操作 (控件的联动)
Sub Drive1_Change() Dir1.Path = Drive1.Drive
要从现存文件中读入数据,应以顺序Input 方式打开该文件,然后使用:
Input # 语句 Line Input # 语句 Input 函数 将文件内容读入到程序变量中。
使驱动器列表框和目录列表框同步的程序代码: Private Sub Drive1_Change() Dir1.Path=Drive1.Drive End Sub
使目录列表框和文件列表框同步的程序代码: Private Sub Dir1_Change() File1.Path=Dir1.Path End Sub 这样,每当改变驱动器列表框的Drive属性时,将 产生Change事件,目录列表框中的目录变为该驱 动器的目录,进一步引发文件列表框目录的变化。
例2
计算机软件技术基础 Visual Basic 程序设计
3.文件列表框(FileListBox)
① 功能:显示当前文件夹下的所有文件列表。 ② 属性:
vb通用对话框在哪
vb通用对话框在哪VB通用对话框是Visual Basic程序开发中常用的一个功能模块,可以方便地弹出各种对话框来与用户进行交互。
在VB中,通用对话框是通过使用对话框控件来实现的。
本文将介绍VB通用对话框的基本用法,并演示如何在程序中正确使用它们。
在VB中,有几种不同类型的通用对话框可以使用,包括文件对话框、颜色对话框、字体对话框和消息框。
每种类型的对话框都有自己的用途和特点,下面将对每种对话框进行详细介绍。
首先是文件对话框。
文件对话框可以用于打开或保存文件的操作。
在VB中,可以使用OpenFileDialog和SaveFileDialog控件来显示文件对话框。
通过设置这些控件的属性,可以指定对话框的标题、初始目录、过滤器等。
在用户选择打开或保存文件后,可以通过这些控件的FileName属性来获取所选文件的路径。
接下来是颜色对话框。
颜色对话框可以用于选择颜色。
在VB中,可以使用ColorDialog控件来显示颜色对话框。
通过设置这个控件的属性,可以指定对话框的标题、初始颜色等。
在用户选择颜色后,可以通过这个控件的Color属性来获取所选颜色的值。
然后是字体对话框。
字体对话框可以用于选择字体和字号。
在VB 中,可以使用FontDialog控件来显示字体对话框。
通过设置这个控件的属性,可以指定对话框的标题、初始字体等。
在用户选择字体后,可以通过这个控件的Font属性来获取所选字体的相关信息。
最后是消息框。
消息框用于向用户显示一条消息并等待用户的响应。
在VB中,可以使用MsgBox函数来显示消息框。
消息框可以显示不同类型的消息,包括信息消息、警告消息、错误消息等。
可以通过设置MsgBox函数的参数来指定消息的类型、按钮的类型、默认按钮等。
通过MsgBox函数,可以方便地向用户显示各种消息,并根据用户的响应进行相应的处理。
在使用VB通用对话框时,需要注意以下几点。
首先,需要确保正确引用相应的命名空间。
文件对话框和颜色对话框属于System.Windows.Forms命名空间,而字体对话框和消息框可以直接使用,无需引用其他命名空间。
深入浅出VB.NET提示对话框
深⼊浅出提⽰对话框 ⼀.输⼊对话框: 制作输⼊对话框相对信息提⽰框来相对简单,在Visual Basic .Net,输⼊对话框是通过InputBox函数来完成的。
以下是InputBox函数在Visual Basic .Net中的语法:Public Function InputBox (ByVal Prompt As String ,Optional ByVal Title As String = "" , _Optional ByVal DefaultResponse As String = "" ,Optional ByVal XPos As Integer = -1 , _Optional ByVal YPos As Integer = -1) As String 参数说明: Prompt: 必选项。
以消息形式显⽰在对话框中的String表达式。
Prompt的最⼤长度⼤约为1024个字符,具体取决于所⽤字符的宽度。
如果Prompt 中包含多个⾏,则可在各⾏之间⽤回车符(Chr(13))、换⾏符(Chr(10))或回车换⾏符的组合(Chr(13)&Chr(10))分隔各⾏。
Title: 可选项。
显⽰在对话框标题栏中的String表达式。
如果省略Title则将应⽤程序名放在标题栏中。
DefaultResponse: 可选项。
显⽰在⽂本框中的String表达式,在没有提供其他输⼊时作为默认响应。
如果省略DefaultResponse,则显⽰的⽂本框为空。
XPos: 可选项。
数值表达式,以缇为单位指定对话框的左边与屏幕左边的距离。
如省略XPos,对话框将⽔平居中。
YPos: 可选项。
数值表达式,以缇为单位指定对话框的上边与屏幕上边的距离。
如果省略ypos,则对话框位于在屏幕垂直⽅向距下边缘⼤约三分之⼀处。
以下就是在Visual Basic .Net中使⽤InputBox函数制作如图01所⽰对话框的具体代码:Dim message , title , defaultValue As StringDim myValue As Objectmessage = "请输⼊数值,数值在1-3之间!" '设定对话框提⽰信息title = "输⼊提⽰框!" '设置对话框标题defaultValue = "1" '设定对话框中缺省的数值myValue = InputBox ( message , title , defaultValue , 100 , 100 )'设定对话框在左上⾓坐标位于桌⾯(100,100)区域显⽰图01:通过InputBox函数制作的提⽰对话框⼆.信息对话框简介: 由于信息对话框使⽤的频率较⾼,并且结构相对复杂,所以本⽂的重点就是介绍在Visual Basic .Net各种类型信息对话框的制作⽅法。
浅谈VB文件对话框
浅谈visual basic文件对话窗微软提供了通用对话框接口Microsoft Common Dialog Control,为编程带来了很大方便,利用它可以轻松调用字体、颜色、打印、帮助等对话框,其中最常用的莫过于打开文件对话框,很多朋友都会用,但是未必每个人都能真正掌控它。
在此假定程序里有CommonDialog的一个实例,命名为cd1,对于单个文件的选择,只需令cd1.Action = 1即可,通常不会遇到问题,返回值cd1.FileName 是选定文件的全路径,但是如果要实现多选,还是有一些问题需要解决的,下面来分析两种方法。
操作:从对话框选定多个文件,把文件路径添加到列表List1方法一:cd1.Flags = 512 '常量cdlOFNAllowMultiselect 的值'示例代码Dim i As Integer, j As IntegerDim temp() As String '接收文件名cd1.Flags = 512cd1.MaxFileSize = 2048cd1.FileName = ""cd1.Filter = "歌曲文件|*.MP3|" '查找类型过滤cd1.Action = 1If cd1.FileName = "" Then Exit SubIf InStr(cd1.FileName, " ") = 0 ThenList1.AddItem cd1.FileNameElsetemp = Split(cd1.FileName, " ")For i = 1 To UBound(temp)List1.AddItem temp(0) & temp(i)Next iEnd If以上代码的每一行都有其特定作用,有些朋友从网上找了类似的代码,但是改动后总是出错,找不到解决的办法,下面逐行分析。
如何充分扩展vb功能
、如何充分扩充VB功能Visual Basic for Windowss3.0(简称VB)是目前开发WINDOWS应用软件的最有效工具之一,它综合运用了BAIC语言和新的可视化设计工具,不仅功能强大,而且简单易学。
其次,VB具有事件驱动的编程机制,它充分利用WINDOWS图形环境的特点,能让开发人员快速地构造强大的应用程序。
那么在开发VB应用软件时,如何充分地扩充VB的功能呢?这就要求在不同的层次上要很好地利用VB最具威力和特色的部分:●在函数层调用动态链接库。
●在控件层使用VBX。
●在应用层执行其他应用程序。
一、在函数层调用功能态链接库(DLL)WINDOWS操作系统实际上是由许多功能强大的动态链接库(DLL)组合而成。
VB考虑到有些工作超过自身语言所及的能力范围,所以提供了直接调用操作系统中这些DLL子程序的能力。
例如:在正常情况下,窗口的控制菜单提供了七种功能:还原、移动、大小、最小化、最大化、关闭和切换。
而在实际应用中,我们希望窗口按设计时的大小显示,不允许用户随意改变窗口大小,也不允许切换到其他窗口,这就要求在设计时必须删除控制菜单中除“移动”和“关闭”选项以外的所有控制菜单项。
要完成这一任务,我们首先可把窗体的MaxButton属性和MinButton属性设置为False,不允许窗体最小化和最大化,窗体也就不能还原。
然后再把窗体的BorderSstyle属性设置为1-Fixed Single或3-Fixed Double,不允许窗体改变大小。
但VB本身却无法删除“切换”选项和两条分隔线。
幸运的是,通过调用WINDOWS DLL就很容易做到。
通常,要使用WINDOWS DLL,首先必须说明要使用的DLL子程序,我们可在两个地方说明所使用的DLL子程序,即在全局模块中说明,或者在窗体层的说明部分中说明。
其格式是:Declare Sub子程序名Lib“库名”[Alias“别名”][([参数])]Declare Function子程序名Lib“库名”[Aliass“别名”][([参数])][AS数据类型]第一种格式表示过程没有返回值,第二种格式表示过程返回一个值,该值可用于表达式中,库名如果用的是WINDOWS操作环境(在System目录下)中的库,如“USER.EXE”,“KERNEL.EXE”或者“GDI.EXE”等,就用此名作为库名。
VB对话框设计
第7章 对 话 框教学提示:对话框是一种特殊的窗体,通过它可以向用户显示各种信息,或者提示用户提供应用程序所需要的数据。
所以在Visual Basic应用程序的设计中,掌握对话框的使用是非常重要的。
Visual Basic中的对话框分为两种类型:使用MsgBox或InputBox函数创建的预定义对话框和使用CommonDialog控件创建的通用对话框。
教学要求:本章重点介绍预定义对话框的语法格式和应用方式,以及CommonDialog 控件的6种常用标准对话框。
学习本章后,要求了解InputBox函数和MsgBox函数的各参数的含义;理解InputBox函数和MsgBox函数的功能及使用方法;掌握通用对话框的常用属性及基本的使用方法。
7.1 输入对话框在Visual Basic中提供了一个InputBox()函数,它能帮助用户建立一个最简单的输入对话框,并在该对话框中显示提示信息,等待用户输入数据,当用户单击“确定”按钮或按Enter键时,该函数返回输入的值,其类型为字符串。
InputBox()函数的语法格式如下:InputBox(prompt[,title][,default][,xpos][,ypos][,helpfile,context]) 函数中的各命令参数含义见表7-1。
表7-1 InputBox()函数的参数及含义参数参数描述prompt 必选项。
作为对话框消息出现的字符串表达式。
prompt的最大长度是1024个字符。
如果prompt包含多个行,则可在各行之间用回车符(Chr(13))、换行符(Chr(10))或回车换行符的组合(Chr(13)&Chr(10))来分隔title 可选项。
显示对话框标题栏中的字符串表达式。
如果省略title,则把应用程序名放入标题栏中default 可选项。
显示文本框中的字符串表达式,在没有输入时是默认值。
如果省略default,则文本框为空xpos 可选项。
VB用API实现各种对话框(总结)
VB用API实现各种对话框(总结)''标准对话框(SmDialog)''Option Explicit''''定义一个全局变量,用于保存字体的各种属性Public Type SmFontAttrFontName As String ''字体名FontSize As Integer ''字体大小FontBod As Boolean ''是否黑体FontItalic As Boolean ''是否斜体FontUnderLine As Boolean ''是否下划线FontStrikeou As BooleanFontColor As LongWinHwnd As LongEnd TypeDim M_GetFont As SmFontAttr''''**系统常量------------------------------------------Private Const SWP_NOOWNERZORDER = &H200Private Const SWP_HIDEWINDOW = &H80Private Const SWP_NOACTIVATE = &H10Private Const SWP_NOMOVE = &H2Private Const SWP_NOREDRAW = &H8Private Const SWP_NOREPOSITION = SWP_NOOWNERZORDERPrivate Const SWP_NOSIZE = &H1Private Const SWP_NOZORDER = &H4Private Const SWP_SHOWWINDOW = &H40Private Const RESOURCETYPE_DISK = &H1 ''网络驱动器Private Const RESOURCETYPE_PRINT = &H2 ''网络打印机''/------------------------------------------------------------ Private Const NoError = 0Private Const CSIDL_DESKTOP = &H0Private Const CSIDL_PROGRAMS = &H2Private Const CSIDL_CONTROLS = &H3Private Const CSIDL_PRINTERS = &H4Private Const CSIDL_PERSONAL = &H5Private Const CSIDL_FAVORITES = &H6Private Const CSIDL_STARTUP = &H7Private Const CSIDL_RECENT = &H8Private Const CSIDL_SENDTO = &H9Private Const CSIDL_BITBUCKET = &HAPrivate Const CSIDL_STARTMENU = &HBPrivate Const CSIDL_DESKTOPDIRECTORY = &H10 Private Const CSIDL_DRIVES = &H11Private Const CSIDL_NETWORK = &H12Private Const CSIDL_NETHOOD = &H13Private Const CSIDL_FONTS = &H14Private Const CSIDL_TEMPLATES = &H15Private Const LF_FACESIZE = 32Private Const MAX_PATH = 260Private Const CF_INITTOLOGFONTSTRUCT = &H40& Private Const CF_FIXEDPITCHONLY = &H4000& Private Const CF_EFFECTS = &H100&Private Const ITALIC_FONTTYPE = &H200Private Const BOLD_FONTTYPE = &H100Private Const CF_NOFACESEL = &H80000Private Const CF_NOSCRIPTSEL = &H800000Private Const CF_PRINTERFONTS = &H2Private Const CF_SCALABLEONLY = &H20000Private Const CF_SCREENFONTS = &H1Private Const CF_SHOWHELP = &H4&Private Const CF_BOTH = (CF_SCREENFONTS Or CF_PRINTERFONTS)''/------------------------------------------Private Type CHOOSECOLORlStructSize As LonghwndOwner As LonghInstance As LongrgbResult As LonglpCustColors As Stringflags As LonglCustData As LonglpfnHook As LonglpTemplateName As StringEnd TypePrivate Type OPENFILENAMElStructSize As LonghwndOwner As LonghInstance As LonglpstrFilter As StringlpstrCustomFilter As StringnMaxCustFilter As LongnFilterIndex As LonglpstrFile As StringnMaxFile As LonglpstrFileTitle As StringnMaxFileTitle As LonglpstrInitialDir As StringlpstrTitle As Stringflags As LongnFileOffset As IntegernFileExtension As IntegerlpstrDefExt As StringlCustData As LonglpfnHook As LonglpTemplateName As StringEnd Type''/----------------------------------------------------------- Private Type LOGFONTlfHeight As LonglfWidth As LonglfEscapement As LonglfOrientation As LonglfWeight As LonglfItalic As BytelfUnderline As BytelfStrikeOut As BytelfCharSet As BytelfOutPrecision As BytelfClipPrecision As BytelfQuality As BytelfPitchAndFamily As BytelfFaceName As String * LF_FACESIZEEnd TypePrivate Type CHOOSEFONTlStructSize As LonghwndOwner As Longhdc As LonglpLogFont As LongiPointSize As Longflags As LongrgbColors As LonglCustData As LonglpfnHook As LonglpTemplateName As StringhInstance As LonglpszStyle As StringnFontType As IntegerMISSING_ALIGNMENT As IntegernSizeMin As LongnSizeMax As LongEnd Type''/--------------Private Type SHITEMIDcb As LongabID() As ByteEnd TypePrivate Type ITEMIDLISTmkid As SHITEMIDEnd Type''/------------------------------------------Private Declare Function SHGetPathFromIDList Lib "shell32.dll" Alias"SHGetPathFromIDListA" _(ByVal Pidl As Long, ByVal pszPath As String) As LongPrivate Declare Function SHGetSpecialFolderLocation Lib "shell32.dll" _(ByVal hwndOwner As Long, ByVal nFolder As Long, _Pidl As ITEMIDLIST) As Long''/------------------------------------------Private Declare Function GetSaveFileName Lib "comdlg32.dll" Alias "GetSaveFileNameA"(pOpenfilename As OPENFILENAME) As LongPrivate Declare Function GetOpenFileName Lib "comdlg32.dll" Alias "GetOpenFileNameA"(pOpenfilename As OPENFILENAME) As LongPrivate Declare Function CHOOSECOLOR Lib "comdlg32.dll" Alias "ChooseColorA"(pChoosecolor As CHOOSECOLOR) As LongPrivate Declare Function WNetConnectionDialog Lib "mpr.dll" (ByVal hWnd As Long,ByVal dwType As Long) As LongPrivate Declare Function CHOOSEFONT Lib "comdlg32.dll" Alias "ChooseFontA"(pChooseFont As CHOOSEFONT) As Long''/=======显示断开网络资源对话框============Private Declare Function WNetDisconnectDialog Lib "mpr.dll" _(ByVal hWnd As Long, ByVal dwType As Long) As Long''/===================================== ========================================= ==Private Declare Sub CoTaskMemFree Lib "ole32.dll" (ByVal pvAs Long)Private Declare Function SHBrowseForFolder Lib "shell32.dll" Alias"SHBrowseForFolderA" _(lpBrowseInfo As BROWSEINFO) As LongPrivate Type BROWSEINFOhOwner As LongpidlRoot As LongpszDisplayName As StringlpszTitle As StringulFlags As Longlpfn As LonglParam As LongiImage As LongEnd Type''/结构说明: _hOwner 调用这个对话框的窗口的句柄 _pidlRoot 指向你希望浏览的最上面的文件夹的符列表 _pszDisplayName 用于保存用户所选择的文件夹的显示名的缓冲区 _lpszTitle 浏览对话框的标题 _ulFlags 决定浏览什么的标志(见下) _lpfn 当事件发生时对话框调用的回调函数的地址.可将它设定为NULL _lparam 若定义了回调函数,则为传递给回调函数的值 _iImage As Long 保存所选文件夹映像索引的缓冲区 _ulFlags参数(见下:)Private Const BIF_RETURNONLYFSDIRS = &H1 ''仅允许浏览文件系统文件夹Private Const BIF_DONTGOBELOWDOMAIN = &H2 ''利用这个值强制用户仪在网上邻居的域级别中Private Const BIF_STATUSTEXT = &H4 ''在选择对话中显示状态栏Private Const BIF_RETURNFSANCESTORS = &H8 ''返回文件系统祖先Private Const BIF_BROWSEFORCOMPUTER = &H1000 ''允许浏览计算机Private Const BIF_BROWSEFORPRINTER = &H2000 ''允许游览打印机文件夹''/--------------------------------------------------------------------------------Dim FontInfo As SmFontAttr ''字体''/--------------------------------------------------------------------------------Private Function GetFolderValue(wIdx As Integer) As Long If wIdx < 2 ThenGetFolderValue = 0ElseIf wIdx < 12 ThenGetFolderValue = wIdxElseGetFolderValue = wIdx + 4End IfEnd Function''Private Function GetReturnType() As LongDim dwRtn As LongdwRtn = dwRtn Or BIF_RETURNONLYFSDIRSGetReturnType = dwRtnEnd Function''''文件夹选择对话框''函数:SaveFile''参数:Title 设置对话框的标签.'' hWnd 调用此函数的HWND'' FolderID SmBrowFolder枚举(默认:我的电脑).''返回值:String 文件夹路径.''例子:Public Function GetFolder(Optional Title As String, _Optional hWnd As Long, _Optional FolderID As SmBrowFolder = MyComputer) As StringDim Bi As BROWSEINFODim Pidl As LongDim Folder As StringDim IDL As ITEMIDLISTDim nFolder As LongDim ReturnFol As StringDim Fid As IntegerFid = FolderIDFolder = String$(255, Chr$(0))With Bi.hOwner = hWndnFolder = GetFolderValue(Fid)If SHGetSpecialFolderLocation(ByVal hWnd, ByVal nFolder, IDL) = NoError Then.pidlRoot = IDL.mkid.cbEnd If.pszDisplayName = String$(MAX_PATH, Fid)If Len(Title) > 0 Then.lpszTitle = Title & Chr$(0)Else.lpszTitle = "请选择文件夹:" & Chr$(0)End If.ulFlags = GetReturnType()End WithPidl = SHBrowseForFolder(Bi)''/返回所选的文件夹路径If SHGetPathFromIDList(ByVal Pidl, ByVal Folder) ThenReturnFol = Left$(Folder, InStr(Folder, Chr$(0)) - 1)If Right$(Trim$(ReturnFol), 1) <> "\" Then ReturnFol = ReturnFol & "\"GetFolder = ReturnFolElseGetFolder = ""End IfEnd Function''''文件保存对话框''函数:SaveFile''参数:WinHwnd 调用此函数的HWND'' BoxLabel 设置对话框的标签.'' StartPath 设置初始化路径.'' FilterStr 文件过滤.'' Flag 标志.(参考MSDN)''返回值:String 文件名.''例子:Public Function SaveFile(WinHwnd As Long, _Optional BoxLabel As String = "", _Optional StartPath As String = "", _Optional FilterStr = "*.*|*.*", _Optional Flag As Variant = &H4 Or &H200000) As StringDim Rc As LongDim pOpenfilename As OPENFILENAMEDim Fstr1() As StringDim Fstr As StringDim I As LongConst MAX_Buffer_LENGTH = 256On Error Resume NextIf Len(Trim$(StartPath)) > 0 ThenIf Right$(StartPath, 1) <> "\" Then StartPath = StartPath & "\"If Dir$(StartPath, vbDirectory + vbHidden) = "" ThenStartPath = App.PathEnd IfElseStartPath = App.PathEnd IfIf Len(Trim$(FilterStr)) = 0 ThenFstr = "*.*|*.*"End IfFstr1 = Split(FilterStr, "|")For I = 0 To UBound(Fstr1)Fstr = Fstr & Fstr1(I) & vbNullCharNext''/--------------------------------------------------With pOpenfilename.hwndOwner = WinHwnd.hInstance = App.hInstance.lpstrTitle = BoxLabel.lpstrInitialDir = StartPath.lpstrFilter = Fstr.nFilterIndex = 1.lpstrDefExt = vbNullChar & vbNullChar.lpstrFile = String(MAX_Buffer_LENGTH, 0).nMaxFile = MAX_Buffer_LENGTH - 1.lpstrFileTitle = .lpstrFile.nMaxFileTitle = MAX_Buffer_LENGTH.lStructSize = Len(pOpenfilename).flags = FlagEnd WithRc = GetSaveFileName(pOpenfilename)If Rc ThenSaveFile = Left$(pOpenfilename.lpstrFile, pOpenfilename.nMaxFile)ElseSaveFile = ""End IfEnd Function''''文件打开对话框''函数:OpenFile''参数:WinHwnd 调用此函数的HWND'' BoxLabel 设置对话框的标签.'' StartPath 设置初始化路径.'' FilterStr 文件过滤.'' Flag 标志.(参考MSDN)''返回值:String 文件名.''例子:Public Function OpenFile(WinHwnd As Long, _Optional BoxLabel As String = "", _Optional StartPath As String = "", _Optional FilterStr = "*.*|*.*", _Optional Flag As Variant = &H8 Or &H200000) As StringDim Rc As LongDim pOpenfilename As OPENFILENAMEDim Fstr1() As StringDim Fstr As StringDim I As LongConst MAX_Buffer_LENGTH = 256On Error Resume NextIf Len(Trim$(StartPath)) > 0 ThenIf Right$(StartPath, 1) <> "\" Then StartPath = StartPath & "\"If Dir$(StartPath, vbDirectory + vbHidden) = "" ThenStartPath = App.PathEnd IfElseStartPath = App.PathEnd IfIf Len(Trim$(FilterStr)) = 0 ThenFstr = "*.*|*.*"End IfFstr = ""Fstr1 = Split(FilterStr, "|")For I = 0 To UBound(Fstr1)Fstr = Fstr & Fstr1(I) & vbNullCharNextWith pOpenfilename.hwndOwner = WinHwnd.hInstance = App.hInstance.lpstrTitle = BoxLabel.lpstrInitialDir = StartPath.lpstrFilter = Fstr.nFilterIndex = 1.lpstrDefExt = vbNullChar & vbNullChar.lpstrFile = String(MAX_Buffer_LENGTH, 0).nMaxFile = MAX_Buffer_LENGTH - 1.lpstrFileTitle = .lpstrFile.nMaxFileTitle = MAX_Buffer_LENGTH.lStructSize = Len(pOpenfilename).flags = FlagEnd WithRc = GetOpenFileName(pOpenfilename)If Rc ThenOpenFile = Left$(pOpenfilename.lpstrFile, pOpenfilename.nMaxFile)ElseOpenFile = ""End IfEnd Function''''颜色对话框''函数:GetColor''参数:''返回值:Long,用户所选择的颜色.''例子:Public Function GetColor() As LongDim Rc As LongDim pChoosecolor As CHOOSECOLORDim CustomColor() As ByteWith pChoosecolor.hwndOwner = 0.hInstance = App.hInstance.lpCustColors = StrConv(CustomColor, vbUnicode) .flags = 0.lStructSize = Len(pChoosecolor)End WithRc = CHOOSECOLOR(pChoosecolor)If Rc ThenGetColor = pChoosecolor.rgbResultElseGetColor = -1End IfEnd Function''''显示映射网络驱动器对话框''函数:ConnectDisk''参数:hWnd 调用此函数的窗口HWND.(ME.HWN)''返回值:=0,成功,<>0,失败.''例子:Public Function ConnectDisk(Optional hWnd As Long) As LongDim Rc As LongIf IsNumeric(hWnd) ThenRc = WNetConnectionDialog(hWnd, RESOURCETYPE_DISK) ElseRc = WNetConnectionDialog(0, RESOURCETYPE_DISK)End IfConnectDisk = RcEnd Function''''显示映射网络打印机对话框''函数:ConnectPrint''参数:hWnd 调用此函数的窗口HWND.(ME.HWN)''返回值:=0,成功,<>0,失败.''例子:Public Function ConnectPrint(Optional hWnd As Long) As LongDim Rc As LongIf IsNumeric(hWnd) ThenRc = WNetConnectionDialog(hWnd, RESOURCETYPE_PRINT) ElseRc = WNetConnectionDialog(0, RESOURCETYPE_PRINT)End IfEnd Function''''断开映射网络驱动器对话框''函数:DisconnectDisk''参数:hWnd 调用此函数的窗口HWND.(ME.HWN)''返回值:=0,成功,<>0,失败.''例子:Public Function DisconnectDisk(Optional hWnd As Long) As LongDim Rc As LongIf IsNumeric(hWnd) ThenRc = WNetDisconnectDialog(hWnd, RESOURCETYPE_DISK) ElseRc = WNetDisconnectDialog(0, RESOURCETYPE_DISK)End IfEnd Function''''断开映射网络打印机关话框''函数:DisconnectPrint''参数:hWnd 调用此函数的窗口HWND.(ME.HWN)''返回值:=0,成功,<>0,失败.''例子:Public Function DisconnectPrint(Optional hWnd As Long) As LongDim Rc As LongIf IsNumeric(hWnd) ThenRc = WNetDisconnectDialog(hWnd, RESOURCETYPE_PRINT) ElseRc = WNetDisconnectDialog(0, RESOURCETYPE_PRINT)End IfEnd Function''''字体选择对话框''函数:GetFont''参数:WinHwnd 调用此函数的窗口HWND.(ME.HWN)''返回值:SmFontAttr 结构变量.''例子:'' Dim mDialog As New SmDialog'' Dim mFontInfo As SmFontAttr'' mFontInfo = mDialog.GetFont(Me.hWnd)'' Set mDialog = NothingPublic Function GetFont(WinHwnd As Long) As SmFontAttr Dim Rc As LongDim pChooseFont As CHOOSEFONTDim pLogFont As LOGFONTWith pLogFont.lfFaceName = StrConv(FontInfo.FontName, vbFromUnicode) .lfItalic = FontInfo.FontItalic.lfUnderline = FontInfo.FontUnderLine.lfStrikeOut = FontInfo.FontStrikeouEnd WithWith pChooseFont.hInstance = App.hInstanceIf IsNumeric(WinHwnd) Then .hwndOwner = WinHwnd.flags = CF_BOTH + CF_INITTOLOGFONTSTRUCT + CF_EFFECTS + CF_NOSCRIPTSELIf IsNumeric(FontInfo.FontSize) Then .iPointSize = FontInfo.FontSize *10If FontInfo.FontBod Then .nFontType = .nFontType + BOLD_FONTTYPEIf IsNumeric(FontInfo.FontColor) Then .rgbColors = FontInfo.FontColor.lStructSize = Len(pChooseFont).lpLogFont = VarPtr(pLogFont)End WithRc = CHOOSEFONT(pChooseFont)If Rc ThenFontInfo.FontName = StrConv(pLogFont.lfFaceName, vbUnicode)FontInfo.FontName = Left$(FontInfo.FontName, InStr(FontInfo.FontName,vbNullChar) - 1)With pChooseFontFontInfo.FontSize = .iPointSize / 10 ''返回字体大小FontInfo.FontBod = (.nFontType And BOLD_FONTTYPE) ''返回是/否黑体FontInfo.FontItalic = (.nFontType And ITALIC_FONTTYPE) ''是/否斜体FontInfo.FontUnderLine = (pLogFont.lfUnderline) ''是/否下划线FontInfo.FontStrikeou = (pLogFont.lfStrikeOut)FontInfo.FontColor = .rgbColorsEnd WithEnd IfGetFont = FontInfoEnd Function''''文件打开.(带预览文件功能)''函数:BrowFile''参数:Pattern 文件类型字符串,StarPath 开始路径,IsBrow 是否生成预览''返回值:[确定] 文件路径.[取消] 空字符串''例:Me.Caption =FileBrow.BrowFile("图片文件|*.JPG;*.GIF;*.BMP|媒体文件|*.DAT;*.MPG;*.SWF;*.MP3;*.MP2")Public Function BrowFile(Optional Pattern As String = "*,*|*.*", _Optional StarPath As String = "C:\", _Optional IsBrow As Boolean = True) As StringOn Error Resume NextIf Len(Trim$(Pattern)) = 0 Then Pattern = "*.*|*.*"P_FilePart = PatternP_StarPath = StarPathP_IsBrow = IsBrowFrmBrowFile.Show 1BrowFile = P_FullFileNameEnd Function''''显示网上邻居''函数:ShowNetWork''参数:FrmCap 窗口标题,Labction 提示标签名.''返回值:[确定] 所选计算机名称.[取消] 空字符串.''例:Public Function ShowNetWork(Optional FrmCap As String = "网上邻居", _Optional Labction As String = "选择计算机名称.") AsStringShowLan.HideShowLan.Caption = FrmCapbNNCaption = LabctionShowLan.Show 1ShowNetWork = P_NetReturnValEnd Function。
一个Vb中的通用对话框函数
一个Vb中的通用对话框函数以下函数相当不错,用于在VB中调用“打开文件”、“保存文件”对话框,几乎大部分程序,都需要与文件操作相关,打开文件是必不可少的,因此来说,本模块在VB编程中还是相当实用的哦。
VB通用对话框函数说明:hwnd 窗口句柄sFilter 过滤器设置格式为:"音频文件" & Chr(0) & "*.mp3;*.wav;*.mid"dwFlags 对话框类型可选值 0 - 10 打开对话框1 保存对话框具体函数代码如下:01 Public Type OPENFILENAME '通用对话框信息02 lStructSize As Long '缓冲区大小03 hwndOwner As Long '父窗口句柄04 hInstance As Long '应用程序事件句柄一般设为App.hInstance05 lpstrFilter As String '文件类型过滤器06 lpstrCustomFilter As String '默认文件扩展名07 nMaxCustFilter As Long '扩展名最大长度08 nFilterIndex As Long09 lpstrFile As String '文件全路径10 nMaxFile As Long '文件全路径名最大长度11 lpstrFileTitle As String '文件标题12 nMaxFileTitle As Long '文件标题最大长度13 lpstrInitialDir As String '默认路径14 lpstrTitle As String '打开对话框标题15 Flags As Long '打开对话框类型16 nFileOffset As Integer17 nFileExtension As Integer18 lpstrDefExt As String19 lCustData As Long20 lpfnHook As Long21 lpTemplateName As String22 End Type23 Public Function OpenDialog(ByVal hWnd As Long, ByVal sFilter As String, ByVal dwFlgs As Long) As String24 Dim Info As OPENFILENAME25 Select Case dwFlgs26 Case 0 '打开27 With Info28 .lStructSize = Len(Info)29 .hwndOwner = hWnd30 .hInstance = App.hInstance31 .lpstrFilter = sFilter32 .lpstrFile = Space(254)33 .nMaxFile = 25534 .lpstrFileTitle = Space(254)35 .nMaxFileTitle = 25536 .lpstrInitialDir = App.Path37 .Flags = 614838 End With39 GetOpenFileName Info40 OpenDialog = Info.lpstrFile41 Case 1 '保存42 With Info43 .lStructSize = Len(Info)44 .hwndOwner = hWnd45 .hInstance = App.hInstance46 .lpstrFilter = sFilter47 .lpstrFile = Space(254)48 .nMaxFile = 25549 .lpstrFileTitle = Space(254)50 .nMaxFileTitle = 25551 .lpstrInitialDir = App.Path52 .Flags = 614853 End With54 GetSaveFileName Info55 OpenDialog = Info.lpstrFile56 End Select57 End Function。
二级计算机考试《VB》复习重点:对话框概述
二级计算机考试《VB》复习重点:对话框概述2015二级计算机考试《VB》复习重点:对话框概述(一)对话框的分类与特点1.对话框的分类Visual Basic中的对话框分为3种类型,即预定义对话框、自定义对话框和通用对话框。
2.对话框的特点(1)在一般情况下,用户没有必要改变对话框的大小,因此其边框是固定的。
(2)为了退出对话框,必须单击其中的某个按钮,不能通过单击对话框外部的某个地方关闭对话框。
(3)在对话框中不能有最大化按钮(Max Button)和最小化按钮(Min Button),以免被意外地扩大或缩成图标。
(4)对话框中不是应用程序的主要工作区,只是临时使用,使用后就关闭。
(5)对话框中控件的属性可以在设计阶段设置,但在有些情况下,必须在运行时(即在代码中)设置控件的属性,因为某些属性设置取决于程序中的条件判断。
Visual Basic的预定义对话框体现了前面4个特点,在定义自己的对话框(见下一节)时,也必须考虑到上述特点。
(二)自定义对话框如前所述,预定义对话框(信息框和输入框)很容易建立,但在应用上有一定的限制。
例如,对于信息框来说,只能显示简单的信息、一个图标和有限的`几种命令按钮,程序设计人员不能改变命令按钮的说明文字,也不能接收用户输入的任何信息。
用输入框可以接收输入的信息,但只限于使用一个输入区域,而且只能使用“确定焙汀叭∠绷街置畎磁ァ?br>如果需要比输入框或信息框功能更多的对话框,则只能由用户自己建立。
(三)通用对话框控件用MsgBox和InputBox函数可以建立简单的对话框,即信息框和输入框。
如果需要,也可以用上面介绍的方法,定义自己的对话框。
当要定义的对话框较复杂时,将会花费较多的时间和精力。
为此,Visual Basic6.0提供了通用对话框控件,用它可以定义较为复杂的对话框。
vb中的事件驱动名词解释
vb中的事件驱动名词解释编程是一门充满创造力和逻辑性的艺术。
在编写代码的过程中,我们会遇到各种概念和术语。
在Visual Basic(VB)中,一个重要的概念是事件驱动编程。
本文将深入探讨VB中的事件驱动名词解释,帮助读者更好地理解这一概念。
1. 理解事件驱动编程的基本概念事件驱动编程是一种编程范式,基于事件与任务之间的交互。
在VB中,事件可以定义为用户与计算机程序进行交互的动作或状态变化。
例如,当用户单击按钮、输入文本或关闭窗口时,都会触发事件。
相应地,程序需要根据特定的事件来执行相应的任务,以响应用户的操作。
2. 理解VB中常见的事件在VB中,有许多常见的事件,每个事件与特定的控件或对象相关联。
以下是几个常见的VB事件:- Click事件:当用户单击一个按钮或控件时触发。
可以用来执行与按钮相关的任务,如显示消息、打开对话框等。
- KeyPress事件:当用户在文本框中按下键盘上的一个键时触发。
可以用来验证用户的输入或执行其他与键盘输入相关的任务。
- Load事件:当一个窗体或对象被加载到内存中时触发。
可以用来初始化窗体或对象的属性、显示初始数据等。
- MouseMove事件:当用户在一个控件上移动鼠标时触发。
可以用来实现与鼠标位置相关的任务,如显示坐标、修改控件样式等。
这些只是VB中常见的事件之一,每个控件和对象都可能有多个事件。
通过使用这些事件,我们可以轻松地与用户进行交互,并根据用户的行为做出相应的响应。
3. 理解事件处理程序事件与任务之间的交互是通过事件处理程序来实现的。
事件处理程序是一段代码,它会在特定事件发生时被执行。
在VB中,我们可以编写事件处理程序来定义在事件发生时要执行的指令。
例如,当用户单击一个按钮时,我们可以编写一个Click事件处理程序来定义按钮的行为。
我们可以在事件处理程序中编写代码,执行各种任务,如验证用户输入、计算数据、改变窗体布局等。
通过合理编写事件处理程序,我们可以实现更加交互性强和响应迅速的程序。
VB控件大全属性详解 公用对话框
表示只允许选择Windows字符集的字体,如果设置该标志,就不能选择仅含符号的字体
&H800
表示对话框不允许选择矢量字体
&H2000
表示对话框只能在Min和Max属性规定的范围内选择字体大小
&H4000
表示对话框只能选择固定间距的字体
&H4000
表示对话框只能选择固定间距的字体
&H8000
Copies
获得或设置一个值,决定要打印的份数
DefaultExt
获得或设置默认的扩展名
DialogtTitle
设置对话框的标题栏文字,设置本属性时只对"打开"和"另存为"对话框起作用,而对"颜色"、"字体"、"打印"和"帮助"对话框没有作用
FileName
获得或设置默认(选定文件)的路径和文件名
Filter
表示返回的文件不具有只读属性,也不能在写保护目录下面
&H40000
表示无长文件名。
件的对话框模板
&H200000
表示使用长文件名。
“颜色”对话框
数值
说明
&H1
表示为对话框设置初始颜色值
&H2
表示显示全部的对话框,包括定义自定义颜色
&H4
表示使定义自定义颜色命令按钮无效,并防止定义自定义颜色
表示对话框只允许选择在打印机和屏幕上均可用的字体
&H10000
表示如果用户试图选择一个并不存在的字体和样式,显示错误信息框
&H20000
表示对话框只允许选择可缩放的字体
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
在VB中基于消息机制扩展文件打开对话框功能研究
摘要:以在Visual Basic中实现文件打开对话框添加自定义控件为主线,通过对通用话框中文件打开对话框的功能定制实现原理及实现过程的介绍,给出了在Visual Basic中实现回调函数和消息通讯机制的方法及过程,对于在Visual Basic中实现消息处理机制具有很好的参考价值与应用价值。
关键词:钩子函数;VB;消息;对话框;API
0引言
在Visual C++(以下简称VC)中可以通过对MFC(Microsoft Foundation Classes)进行重写和封装,来改变Windows内建控件和组件的外观与功能,而在Visual Basic中所有的控件都是预先封装好的,微软也没有提供类似MFC的基础类库,于是操作系统中一些底层功能的调用,很难通过常规办法来加入自定义功能。
要改变系统提供的一些API(Application Programming Interface,应用程序编程接口)函数所调用的Windows基础控件和组件的外观与行为,一般需要从底层消息层面来实现。
本文以扩展Windows基础对话框——文件打开对话框为例,剖析在Visual Basic(以下简称VB)中如何在文件打开对话框中添加自定义控件,并通过消息机制为自定义控件增加功能响应。
1扩展文件打开对话框
1.1实现原理
文件打开对话框是Windows通用对话框中的一种,根据运行环境的不同,文件打开对话框有两种形式的外观:旧风格和Explorer 风格。
在文件打开对话框中添加自定义控件,可以通过为OPENFILENAME结构提供一个包含自定义控件的子窗体模板来实现。
如果子窗体模版是一个程序或是一个动态链接库,需设置OFN_ENABLETEMPLATE标识并且为hInstance和lpTemplateName 成员标识指定实例句柄和资源名称。
如果模版已经加载到内存中,可以使用OFN_ENABLETEMPLATEHANDLE标识并且为hInstance指定包含模板的内存对象。
当为浏览器风格的对话框提供子窗体模版时,必须设置OFN_EXPLORER标识,否则系统会认为只是为旧样式的对话框提供了一个替换模版。
可以像创建其它任何模版一样创建子窗体模版,子窗体必须设置为WS_CHILD和WS_CLIPSIBLINGS样式,并且设定DS_3DLOOK 和DS_CONTROL风格。
因为为文件打开定义的是一个子窗体模版,所以系统需要设置WS_CHILD风格,而WS_CLIPSIBLINGS样式可以保证子窗体不会覆盖默认窗体中的任何控件;DS_3DLOOK风格是为了保证子窗体中的控件的外观与默认窗体中的控件保持一致;DS_CONTROL风格可以保证用户能够使用TAB键和其它的导航键在所有的控件(包括所有默认控件和自定义控件)之间切换。
为了在文件打开对话框中放置所有的自定义控件,系统使用(子窗体模版中)自定义对话框的宽和高来扩展默认对话框。
自定义对话框中的所有控件会被放置在默认对话框的下面,但是可以通过在自定
义窗体模版中添加一个标识(ID)为“stc32”的静态文本框来改变默认的布局(定义包含在DLG.H头文件中)。
在这种情况下,系统会使用所引用控件的位置区定位新的控件的位置。
所有在stc32控件上边和左边的自定义控件,在默认对话框中会被放在上边和左边相同的位置上。
在stc32控件下方和右方的自定义控件会被放置到默认控件的下方和右方。
不需要调整stc32的大小以适应通用对话框,对话框处理程序会自动进行调整。
通常每一个自定义控件与默认控件的相对位置与其在模版中和stc32控件的相对位置一样。
为了给自定义控件让出地方,系统会在默认对话框的上下左右添加必要的空间。
在添加了自定义控件以后,还必须提供一个钩子(回调)函数来处理对话框收到的所有消息。
比如,当用户在文件打开对话框中点击自定义按钮时钩子函数会收到WM_COMMAND消息。
钩子函数负责初始化所有控件,并且当对话框关闭时用于接收对话框的返回值。
注意,当钩子函数接收到WM_INITDIALOG消息时,系统尚未把所有的控件移动到它们的最终位置,此时调整用户布局会被系统默认动作覆盖。
默认对话框处理所有默认控件的消息,钩子函数接收所有自定义控件的WM_NOTIFY消息。
如果OPENFILENAME中flags成员的值既不是OFN_ENABLETEMPLATE,也不是OFN_ENABLETEMPLATEHANDLE,文件打开对话框将会创建一个空的模版。
1.2创建资源文件
虽然在VB中自带资源编辑器,但是由于VB的资源编辑器功能
相对比较简单,不能实现窗体编辑及控件添加,所以笔者选择使用Visual Studio 6.0中的另外一个工具VC来进行资源编辑。
在VC中新建Resource Script类型的文件,然后添加窗体,就可以编辑想要的窗体资源。
Resource Script文件保存时生成的是以.rc为后缀的文件,要想在VB中引用,还需使用Visual Studio自带的资源编译工具rc.exe 将其编译成以.res为后缀的资源文件。