by C1000 » 2006年5月06日(土) 19:28
あとはサンプルのテキストエディダのファイルを開く部分に取得したファイル名を設定すればエディットボックスにセットできるはずです。
(変数Fileにファイル名が入っている事とします。)
コード: 全て選択
Dim hEdit As Long
Dim File As String
Dim hFile As Long
Dim dwFileSize As DWord
Dim dwAccessByte As DWord
Dim FileName[MAX_PATH-1] As Byte
Dim buffer As BytePtr
'-------------------
' ファイル オープン
'-------------------
hFile=CreateFile(File, GENERIC_READ, FILE_SHARE_READ or FILE_SHARE_WRITE, _
ByVal 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0)
If hFile=INVALID_HANDLE_VALUE Then
MessageBox(hMainWnd,"ファイルオープンに失敗","エラー",MB_OK or MB_ICONEXCLAMATION)
Exit Sub
End If
'ファイルサイズを取得し、バッファを確保する
dwFileSize=GetFileSize(hFile,0)
buffer=malloc(dwFileSize+1)
'ファイルの内容を文字列変数bufferに読み込む
ReadFile(hFile,buffer,dwFileSize,VarPtr(dwAccessByte),ByVal 0)
buffer[dwAccessByte]=0
'ファイル ハンドルを閉じる
CloseHandle(hFile)
'-------------------
'EditBox1のハンドルを取得
hEdit=GetDlgItem(hMainWnd, EditBox1)
'hEditにバッファをセットする
SetWindowText(hEdit,buffer)
'バッファを解放する
free(buffer)
'hEditにフォーカスをセット
SetFocus(hEdit)
テストしていないので動くかどうかわかりません。
あとはサンプルのテキストエディダのファイルを開く部分に取得したファイル名を設定すればエディットボックスにセットできるはずです。
(変数Fileにファイル名が入っている事とします。)
[code]
Dim hEdit As Long
Dim File As String
Dim hFile As Long
Dim dwFileSize As DWord
Dim dwAccessByte As DWord
Dim FileName[MAX_PATH-1] As Byte
Dim buffer As BytePtr
'-------------------
' ファイル オープン
'-------------------
hFile=CreateFile(File, GENERIC_READ, FILE_SHARE_READ or FILE_SHARE_WRITE, _
ByVal 0, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0)
If hFile=INVALID_HANDLE_VALUE Then
MessageBox(hMainWnd,"ファイルオープンに失敗","エラー",MB_OK or MB_ICONEXCLAMATION)
Exit Sub
End If
'ファイルサイズを取得し、バッファを確保する
dwFileSize=GetFileSize(hFile,0)
buffer=malloc(dwFileSize+1)
'ファイルの内容を文字列変数bufferに読み込む
ReadFile(hFile,buffer,dwFileSize,VarPtr(dwAccessByte),ByVal 0)
buffer[dwAccessByte]=0
'ファイル ハンドルを閉じる
CloseHandle(hFile)
'-------------------
'EditBox1のハンドルを取得
hEdit=GetDlgItem(hMainWnd, EditBox1)
'hEditにバッファをセットする
SetWindowText(hEdit,buffer)
'バッファを解放する
free(buffer)
'hEditにフォーカスをセット
SetFocus(hEdit)[/code]
テストしていないので動くかどうかわかりません。