使用Windows API函数显示打开文件对话框

王朝system·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

平时使用VB编程时需要用到"打开文件"类似的对话框时我们一般需要添加一个commondialogue的控件。使用这个控件能完成如“打开”,“另存”,“颜色”,“打印”等众多的功能,但是如果一个功能很简单的程序,使用这个控件却也造成了一些不必要的麻烦。一个是需要安装,再个增加了发布文件包的体积。

下面介绍如何使用Window API显示一个“打开”的对话框:

General.bas:

Declare Function GetOpenFileName Lib "comdlg32.dll" Alias _

"GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long

Type OPENFILENAME

lStructSize As Long

hwndOwner As Long

hInstance As Long

lpstrFilter As String

lpstrCustomFilter As String

nMaxCustFilter As Long

nFilterIndex As Long

lpstrFile As String

nMaxFile As Long

lpstrFileTitle As String

nMaxFileTitle As Long

lpstrInitialDir As String

lpstrTitle As String

flags As Long

nFileOffset As Integer

nFileExtension As Integer

lpstrDefExt As String

lCustData As Long

lpfnHook As Long

lpTemplateName As String

End Type

在调用对话框的按钮的click事件输入下面代码:

Private Sub FileOpen_Click()

Dim ofn As OPENFILENAME

Dim rtn As String

ofn.lStructSize = Len(ofn)

ofn.hwndOwner = Me.hWnd

ofn.hInstance = App.hInstance

ofn.lpstrFilter = "所有文件"

ofn.lpstrFile = Space(254)

ofn.nMaxFile = 255

ofn.lpstrFileTitle = Space(254)

ofn.nMaxFileTitle = 255

ofn.lpstrInitialDir = App.Path

ofn.lpstrTitle = "打开文件"

ofn.flags = 6148

rtn = GetOpenFileName(ofn)

If rtn >= 1 Then

msgbox ofn.lpstrFile

Else

msgbox "Cancel Was Pressed"

End If

End Sub

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航