VB 選擇目錄對話方塊實現(API)

2021-04-17 14:43:36 字數 2150 閱讀 7609

private

type browseinfo

hwndowner 

aslong

pidlroot 

aslong

pszdisplayname 

aslong

lpsztitle 

aslong

ulflags 

aslong

lpfncallback 

aslong

lparam 

aslong

iimage 

aslong

endtype

const

bif_returnonlyfsdirs =1

const

max_path 

=260

private

declare

subcotaskmemfree 

lib"

ole32.dll"(

byval

hmem 

aslong

)private

declare

function

lstrcat 

lib"

kernel32

"alias

"lstrcata"(

byval

lpstring1 

asstring

, byval

lpstring2 

asstring

) as

long

private

declare

function

shbrowseforfolder 

lib"

shell32

"(lpbi 

asbrowseinfo) 

aslong

private

declare

function

shgetpathfromidlist 

lib"

shell32"(

byval

pidlist 

aslong

, byval

lpbuffer 

asstring

) as

long

private

function

getfolder(

byval

title 

asstring

) as

string

diminull 

asinteger

, lpidlist 

aslong

, lresult 

aslong

dimspath 

asstring

, udtbi 

asbrowseinfo

with

udtbi

'設定彈出的對話方塊的父視窗控制代碼

.hwndowner =me

.hwnd

.lpsztitle 

=lstrcat(title, 

"") '標題

.ulflags 

=bif_returnonlyfsdirs

endwith

lpidlist 

=shbrowseforfolder(udtbi)

iflpidlist 

then

spath 

=string

$(max_path, 0)

shgetpathfromidlist lpidlist, spath

cotaskmemfree lpidlist

inull 

=instr

(spath, vbnullchar)

ifinull 

then

spath 

=left

$(spath, inull -1

)end

ifend

ifgetfolder 

=spath

end function

private

subcommand1_click()

text1.text 

=getfolder(

"請選擇資料夾")

end sub

選擇目錄對話方塊和選擇檔案對話方塊

在mfc程式設計中經常會需要用到選擇目錄和選擇檔案的介面,以下總結一下本人常用的這兩種對話方塊的生成方法 選擇目錄對話方塊 選擇目錄按鈕 void cdcpackerdlg onbnclickeddecgen else afxmessagebox 無效的目錄,請重新選擇 選擇檔案對話方塊 cstri...

MFC 選擇目錄對話方塊和選擇檔案對話方塊

在mfc程式設計中經常會需要用到選擇目錄和選擇檔案的介面,以下總結一下本人常用的這兩種對話方塊的生成方法 選擇目錄對話方塊 void cdcpackerdlg onbnclickeddecgen else afxmessagebox 無效的目錄,請重新選擇 選擇檔案對話方塊 選擇目錄按鈕 cstri...

MFC 選擇目錄對話方塊和選擇檔案對話方塊

在mfc程式設計中經常會需要用到選擇目錄和選擇檔案的介面,以下總結一下本人常用的這兩種對話方塊的生成方法 選擇目錄對話方塊 選擇目錄按鈕 void cdcpackerdlg onbnclickeddecgen else afxmessagebox 無效的目錄,請重新選擇 選擇檔案對話方塊 cstri...