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

原创 2004年08月30日 11:14:00

平时使用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

版权声明:本文为博主原创文章,未经博主允许不得转载。

Windows下,文件(夹)选择/打开对话框的三种创建方式

Windows编程时,常用到打开文件(夹)对话框,选择文件或者多个文件的功能。Windows提供了好几种方式,现在做个总结,也好方便以后的使用。...
  • wutong_xingkong
  • wutong_xingkong
  • 2017年01月03日 20:49
  • 772

[Win32]打开文件/保存文件/选择文件夹对话框

本博文由CSDN博主zuishikonghuan所作,版权归zuishikonghuan所有,转载请注明出处: 1。打开文件对话框:GetOpenFileName函数 函数原形:BOOL WINAPI...
  • zuishikonghuan
  • zuishikonghuan
  • 2015年08月12日 17:31
  • 10224

windows API实现用户选择文件路径的对话框

在编写应用程序时,有时需要用户选择某个文件,以供应用程序使用,比如在某些管理程序中需要打开某一个进程,这个时候需要弹出一个对话框来将文件路径以树形图的形式表示出来,以图形化的方式供用户选择文件路径,而...
  • lanuage
  • lanuage
  • 2015年12月22日 20:12
  • 2365

windows API实现用户选择文件路径的对话框

在编写应用程序时,有时需要用户选择某个文件,以供应用程序使用,比如在某些管理程序中需要打开某一个进程,这个时候需要弹出一个对话框来将文件路径以树形图的形式表示出来,以图形化的方式供用户选择文件路径,而...
  • lanuage
  • lanuage
  • 2015年12月22日 20:12
  • 2365

Windows下,文件(夹)选择/打开对话框的三种创建方式

Windows编程时,常用到打开文件(夹)对话框,选择文件或者多个文件的功能。Windows提供了好几种方式,现在做个总结,也好方便以后的使用。...
  • wutong_xingkong
  • wutong_xingkong
  • 2017年01月03日 20:49
  • 772

[Win32]打开文件/保存文件/选择文件夹对话框

本博文由CSDN博主zuishikonghuan所作,版权归zuishikonghuan所有,转载请注明出处: 1。打开文件对话框:GetOpenFileName函数 函数原形:BOOL WINAPI...
  • zuishikonghuan
  • zuishikonghuan
  • 2015年08月12日 17:31
  • 10224

Win32 api使用中调用GetOpenFileName打开文件对话框无响应的解决方法

好久没有写代码了,偶尔兴起写了一下居然还BUG不断,简直不能忍受。短短的几行代码就调了一下午,最后才发现原来是消息函数的错误。 调用打开文件的代码 void OpenFileDlg(HWND hD...
  • laassue
  • laassue
  • 2015年04月29日 20:59
  • 964

C# Windows-API-Code-Pack文件选择对话框实例

一、新建Wpf项目,需要添加引用 Install-Package WindowsAPICodePack-Core Install-Package WindowsAPICodePack-Shell 二...
  • u011127019
  • u011127019
  • 2016年10月01日 19:04
  • 1156

windows api打开文件对话框

用windows api 写打开文件对话框 1.主要使用OPENFILENAME ,GetOpenFileName, GetSaveFileName; OPENFILENAME 结构体介绍...
  • whatday
  • whatday
  • 2014年04月09日 18:07
  • 6345

Windows路径操作API函数全集

PathRemoveArgs  去除路径的参数 PathRemoveBackslash  去除路径最后的反斜杠"\" PathAddBackslash  在路径最后加上反斜杠"\" PathRemov...
  • chenlycly
  • chenlycly
  • 2015年10月11日 09:56
  • 1071
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:使用Windows API函数显示打开文件对话框
举报原因:
原因补充:

(最多只允许输入30个字)