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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/langkew/article/details/88679

windows api打开文件对话框

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

OPENFILENAME打开文件对话框选择多个文件的问题解决

之前介绍过一些OPENFILENAME的基础以及如何定制打开或保存文件对话框。当选择多个文件时可能造成存放所有文件文件名的lpstrFile指针指向的缓存溢出,使得GetOpenFileName(&o...
  • chishui2
  • chishui2
  • 2010年10月21日 17:03
  • 2919

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

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

快速调用系统对话框(全)

(作者:甘冀平 2000年12月21日 17:46)  Windows系统给我们提供了许多非常实用的功能,而且都是以对话框的形式展现在用户眼前,比如:查找文件、浏览选择后执行程序,等等 ... 如果我...
  • ZOU_SEAFARER
  • ZOU_SEAFARER
  • 2006年11月17日 10:14
  • 1215

win32api调用打开/保存文件对话框

演示:打开一个文本文件读取其中的第一个整数 #include #include #include using namespace std; int main() { TCHAR szFil...
  • qq_34581491
  • qq_34581491
  • 2016年11月03日 22:33
  • 289

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

平时使用VB编程时需要用到"打开文件"类似的对话框时我们一般需要添加一个commondialogue的控件。使用这个控件能完成如“打开”,“另存”,“颜色”,“打印”等众多的功能,但是如果一个功能很简...
  • langkew
  • langkew
  • 2004年08月30日 11:14
  • 3986

用VB的API函数打开系统“浏览文件”对话框

  • 2013年05月16日 00:55
  • 6KB
  • 下载

Access利用Windows API打开文件对话框

Option Explicit*------------------------------------------------------------------------* Purpose: 声...
  • JianZhiZG
  • JianZhiZG
  • 2006年12月19日 22:14
  • 2635

C语言利用Windows api创建文件打开对话框模板

OPENFILENAME ofn; char szFile[MAX_PATH]; ZeroMemory(&ofn,sizeof(ofn));//C语言中,结构体声明后必须要进行初始化结构体 ...
  • DNVBYXK
  • DNVBYXK
  • 2017年02月01日 18:05
  • 538

Vb调用Windows对话框,颜色和文件对话框

  • 2011年11月07日 20:47
  • 4KB
  • 下载
收藏助手
不良信息举报
您举报文章:使用Windows API函数显示打开文件对话框
举报原因:
原因补充:

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