by 7 » 2007年7月30日(月) 07:45
> 開いたファイルと同じ階に "開いたファイル名&data.txt" があって、
> それも開きたいときはどうすればいいのですか?
>
> いちいち2回ダイアログ ボックスを表示させるしかないのでしょうか?
一回目、ダイアログボックスを表示してユーザーがファイルを選択した場合、Byte型変数
FileNameにファイルへの絶対パスが格納されるので、そのパスに "
data.txt" を追加するだけで開くことができます。
文字列の追加はlstrcat()関数で行うことができます。
[ここをクリックすると内容が表示されます] [ここをクリックすると非表示にします]コード: 全て選択
Dim ofn As OPENFILENAME
Dim FileName[MAX_PATH-1] As Byte
'OPENFILENAME構造体の初期化
FillMemory(VarPtr(ofn),Len(ofn),0)
ofn.lStructSize=Len(ofn)
ofn.hwndOwner=hMainWnd
ofn.lpstrFilter=Ex"すべてのファイル(*.*)\0*\0\0"
ofn.nFilterIndex=1
ofn.lpstrFile=FileName
ofn.nMaxFile=MAX_PATH
ofn.lpstrTitle="ファイルを開く"
ofn.Flags=OFN_FILEMUSTEXIST or OFN_HIDEREADONLY or OFN_PATHMUSTEXIST
ofn.lpstrDefExt="*"
'「ファイルを開く」ダイアログ ボックスを表示
If GetOpenFileName(ofn)=0 Then Exit Sub
' まずFileNameを開く
' 開いた後に "data.txt" を追加
lstrcat(FileName,"data.txt")
' FileNameを開く
> 開いたファイルと同じ階に "開いたファイル名&data.txt" があって、
> それも開きたいときはどうすればいいのですか?
>
> いちいち2回ダイアログ ボックスを表示させるしかないのでしょうか?
一回目、ダイアログボックスを表示してユーザーがファイルを選択した場合、Byte型変数[b]FileName[/b]にファイルへの絶対パスが格納されるので、そのパスに "[b]data.txt[/b]" を追加するだけで開くことができます。
文字列の追加はlstrcat()関数で行うことができます。
[hide][code]Dim ofn As OPENFILENAME
Dim FileName[MAX_PATH-1] As Byte
'OPENFILENAME構造体の初期化
FillMemory(VarPtr(ofn),Len(ofn),0)
ofn.lStructSize=Len(ofn)
ofn.hwndOwner=hMainWnd
ofn.lpstrFilter=Ex"すべてのファイル(*.*)\0*\0\0"
ofn.nFilterIndex=1
ofn.lpstrFile=FileName
ofn.nMaxFile=MAX_PATH
ofn.lpstrTitle="ファイルを開く"
ofn.Flags=OFN_FILEMUSTEXIST or OFN_HIDEREADONLY or OFN_PATHMUSTEXIST
ofn.lpstrDefExt="*"
'「ファイルを開く」ダイアログ ボックスを表示
If GetOpenFileName(ofn)=0 Then Exit Sub
' まずFileNameを開く
' 開いた後に "data.txt" を追加
lstrcat(FileName,"data.txt")
' FileNameを開く[/code][/hide]