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

2016-01-29 12:34 100 1 收藏

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

【 tulaoshi.com - ASP.NET 】


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

来源:http://www.tulaoshi.com/n/20160129/1486634.html

延伸阅读
问:程序是基于对话框的,我显示两个对话框,一个在另一个后面,下面是我的做法: CMyApp::InitInstance () { ... CMyDialog1 dlg1; m_hMainWnd = &dlg1; int result = dlg1.DoModal (); CMyDialog2 dlg2; result = dlg2.DoModal (); ... } 在上面的代码中,首先一个对话框得到了适当地调用...
C++ At Work 专栏... 计算MDI子窗口数,仅显示文件夹的打开对话框 原著:Paul DiLascia 翻译:NorthTibet 下载源代码:CAtWork0506.exe (195KB) 原文出处:Counting MDI Children, Browsing for Folders 本文发布后内容有更新,详情参见文章的“编辑更新” 计算 MDI 子窗口数 ...
标签: 办公软件
在Excel中,执行“工具→选项”命令,打开“选项”对话框可进一步对Excel进行个性化设置。但是,如果设置不当,有时会带来不必要的麻烦。下面是笔者同一位Excel初学者的对话,我们整理出来,希望对大家有所帮助。 问:每次启动Excel时,窗口右侧都被一个工具条占去了一大部分(如图1),影响编辑表格,如何不让这个工具条自动启动呢? 答...
在c++Builder控件板上的Dialogs页上的VCL控件包括了Windows常用的对话框。换句话说,VCL并没有提供对话框,那些对话框都是Windows的一部分。VCL只是使得使用这些对话框变得轻易些。在一些应用中,你可能想改变打开对话框中打开按钮的标题,例如,变成表示你的程序答应用户添加文件到文档中,这中情况下,你可能想打开按钮上的标题自己的标题而不...
标签: 办公软件
    Excel 2000 新增的在对话框中输入区域引用可以折叠的按钮,这样用户在工作表上选定所需的区域时,对话框就不会阻挡视线。对这类对话框的操作是,在折叠按钮上单击可以将其折叠,再次单击则返回到对话框,图2-9和图2-10分别显示了折叠前后的效果。

经验教程

678

收藏

52
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部