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...