免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3007 | 回复: 0
打印 上一主题 下一主题

使用Windows API函数显示打开文件对话框 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-07-30 15:23 |只看该作者 |倒序浏览
平时使用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
  
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP