实在要用,就用API吧。。。
帮助默认集有了GetOpenFileName,不过此函数只支持英文目录的。
需要中文支持请用GetOpenFileNameA,这个函数默认是没有的,要自己写。我懒得写了,将就用着吧。
个人建议:为了避免任务栏多出一个窗口而用API,感觉得不偿失;所花费的时间巨多,还是默认的FileOpenDialog来得快。
#include <GuiConstantsEx.au3>
#include <WinAPI.au3>
$hGUI = GUICreate("My GUI", 300, 200)
$btn_dialog=GUICtrlCreateButton("test",10,30,100,30)
GUISetState()
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
ExitLoop
Case $btn_dialog
$aFile = _WinAPI_GetOpenFileName("My Open File Dialog", _
"Text File (*.txt;*.au3)", ".", @ScriptName, "", 1, _
BitOR($OFN_ALLOWMULTISELECT, $OFN_EXPLORER), 0, $hGui)
If $aFile[0] = 0 Then
$sError = _WinAPI_CommDlgExtendedError()
MsgBox(0,0,"CommDlgExtendedError (" & @error & "): " & $sError)
Else
For $x = 1 To $aFile[0]
MsgBox(0,0,$aFile[$x])
Next
EndIf
EndSwitch
WEnd
|