软件注册站
热情软件屋

 
如何调用GetOpenFileName函数
编号: QA004107    
建立日期: 2001年4月15日 最后修改日期: 2001年4月15日
所属类别: Visual Basic - Windows API
   
    本问题涉及的操作系统 Win98/Win2000
    本问题涉及的编程工具 VB5
    遇到的问题
    请教GetOpenFileName、 GetSaveFileName等函数的详细用法,我不想使用ComDlg32.ocx控件,因此希望使用这些函数,但不会用,请专家给出源码。谢谢!另外,选择颜色对话框用什么函数?也请给出源码。多谢! (鲁莽)
   
    下面是GetOpenFileName的例子:
     Option Explicit
    
     Private Declare Function GetOpenFileName Lib "comdlg32.dll" Alias _
     "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long
    
     Private 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
    
     Private Sub Command1_Click()
     Dim OpenFile As OPENFILENAME
     Dim lReturn As Long
     Dim sFilter As String
     OpenFile.lStructSize = Len(OpenFile)
     OpenFile.hwndOwner = Form1.hWnd
     OpenFile.hInstance = App.hInstance
     sFilter = "Batch Files (*.bat)" & Chr(0) & "*.BAT" & Chr(0)
     OpenFile.lpstrFilter = sFilter
     OpenFile.nFilterIndex = 1
     OpenFile.lpstrFile = String(257, 0)
     OpenFile.nMaxFile = Len(OpenFile.lpstrFile) - 1
     OpenFile.lpstrFileTitle = OpenFile.lpstrFile
     OpenFile.nMaxFileTitle = OpenFile.nMaxFile
     OpenFile.lpstrInitialDir = "C:\"
     OpenFile.lpstrTitle = "Use the Comdlg API not the OCX"
     OpenFile.flags = 0
     lReturn = GetOpenFileName(OpenFile)
     If lReturn = 0 Then
     MsgBox "The User pressed the Cancel Button"
     Else
     MsgBox "The user Chose " & Trim(OpenFile.lpstrFile)
     End If
     End Sub
    

    选择颜色的函数是ChooseColor,选择字体的函数是ChooseFont。几个函数的用法类似,都是调用一个结构,结构的定义在Win32api.txt中可以找到,详细的说明在Win API的帮助中有。

    

此问题由李海回答。

附加关键字:编程, 源程序, programming, source code, Visual Basic, VB, Windows API, win32, api, windows api, gdi32, kernel

   
 
把这个问题推荐给朋友
   
 
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio