VFB打开文件对话框_AfxOpenFileDialog
━━━━━━━━━━━━━━━━━━━━━━━━━
AfxOpenFileDialog 创建一个Open对话框,让用户指定要打开的驱动器,目录以及文件或文件集的名称。该对话框使用资源管理器风格的用户界面。
语法
Function AfxOpenFileDialog ( _
ByVal hwndOwner As HWND, _
ByRef wszTitle As WSTRING, _
ByRef wszFile As WSTRING, _
ByRef wszInitialDir As WSTRING, _
ByRef wszFilter As WSTRING, _
ByRef wszDefExt As WSTRING, _
ByVal pdwFlags As DWORD PTR = Null, _
ByVal pdwBufLen As DWORD PTR = Null _
) As CWSTR
参数
hwndOwner
[In]拥有对话框的窗口句柄。该成员可以是任何有效的窗口句柄,如果对话框没有所有者,则该成员可以为NULL。
wszTitle
[In]要放置在对话框的标题栏中的字符串。如果此成员为NULL,则系统使用默认标题(即,Open)。
wszFile
[In]用于初始化File Name编辑控件的文件名。
wszInitialDir
[In]初始目录。 如果没有指定初始目录,对话框将使用当前目录
wszFilter
[In]包含“|”对的缓冲区分隔字符串。每对中的第一个字符串是描述过滤器的显示字符串(例如“Text Files”),第二个字符串指定过滤器模式(例如“
* .TXT”)。要为单个显示字符串指定多个过滤器模式,请使用分号分隔模式(例如,“
* .TXT; *
。DOC; *
。BAK”)。模式字符串可以是有效的文件名字符和星号( *
)通配符的组合。模式字符串中不要包含空格。
系统不会更改过滤器的顺序。按wszFilter .中指定的顺序在File Types组合框中显示它们。
wszDefExt
[In]默认扩展名。如果用户无法键入扩展名,则该扩展名将附加到文件名。此字符串可以是任意长度,但只能附加前三个字符。字符串不应包含句点(。)。如果此成员为空,且用户未能键入扩展名,则不会附加任何扩展名。
dwFlags
[In, out]可以用来初始化对话框的一组位标志。当对话框返回时,它设置这些标志以指示用户的输入。此成员可以是以下标志的组合:
OFN_ALLOWMULTISELECT( &h00000200)
File Name列表框允许多项选择
━━━━━━━━━━━━━━━━━━━━━━━━━
示例(单个文件选择)
' ##############################################################
' 微软Windows
' 内容:演示使用AfxOpenFileDialog函数(单选)。
' 编译器:FreeBasic 32& 64位
Copyright (c) 2016 José Roca. Freeware. Use at your own risk.
' THIS CODE AND INFORMATION IS PROVIDED "AS IS " WITHOUT WARRANTY OF ANY KIND, EITHER
' EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
' MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
' ###############################################################
#define UNICODE
#INCLUDE ONCE "Afx/Cwindows.inc"
USING Afx
Const IDC_OFD = 1001
Declare Function WinMain (ByVal hInstance As HINSTANCE, _
ByVal hPrevInstance As HINSTANCE, _
ByVal szCmdLine As ZSTRING PTR, _
ByVal nCmdShow As Long) As Long
End WinMain(GetModuleHandleW(Null), Null, COMMAND(), SW_NORMAL)
' // 前向声明
Declare Function WndProc (ByVal hwnd As HWND, ByVal uMsg As UINT, ByVal wParam As WPARAM, ByVal lParam As LPARAM) As LRESULT
' =========================================================
' 主要
' =========================================================
Function WinMain (ByVal hInstance As HINSTANCE, _
ByVal hPrevInstance As HINSTANCE, _
ByVal szCmdLine As ZSTRING PTR, _
ByVal nCmdShow As Long) As Long
' // 设置进程DPI认识
AfxSetProcessDPIAware
' // 创建主窗口
Dim pWindow As CWindow
pWindow.Create(Null, "AfxOpenFileDialog example", @WndProc)
pWindow.SetClientSize(500, 320)
pWindow.Center
' // 添加一个按钮
pWindow.AddControl("Button", , IDC_OFD, "&Open File Dialog", 350, 250, 110, 23)
' // 发送消息
Function = pWindow.DoEvents(nCmdShow)
End Function ' =========================================================
' =========================================================
' 主窗口回调过程
' =========================================================
Function WndProc (ByVal hwnd As HWND, ByVal uMsg As UINT, ByVal wParam As WPARAM, ByVal lParam As LPARAM) As LRESULT
Select Case uMsg
Case WM_COMMAND
Select Case GET_WM_COMMAND_ID(wParam, lParam)
|