by 雷電 » 2007年4月20日(金) 22:16
問題のコード [ここをクリックすると内容が表示されます] [ここをクリックすると非表示にします]コード: 全て選択
Dim NowUnitNum As Long '現在のユニット数
Sub MainWnd_IDM_OPEN_MenuClick()
Dim ofn As OPENFILENAME
Dim FileName[MAX_PATH-1] As Byte
Dim i As Long
Dim i2 As Long
Dim buffer As String
Dim lpstrBuffer[254] As Byte
Dim lpstrBuffer2[254] As Byte
Dim lc As LVITEM
'OPENFILENAME構造体の初期化
FillMemory(VarPtr(ofn),Len(ofn),0)
ofn.lStructSize=Len(ofn)
ofn.hwndOwner=hMainWnd
ofn.lpstrFilter=Ex"SubAppendMission\0*.sam\0AppendMissionFiles\0*.apm\0テキストファイル\0*.txt\0すべてのファイル(*.*)\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 or OFN_EXPLORER or OFN_NOCHANGEDIR
ofn.lpstrDefExt="*"
'「ファイルを開く」ダイアログボックスを表示
If GetOpenFileName(ofn)=0 Then Exit Sub
'INIファイルからユニット数を読み込む
NowUnitNum=GetPrivateProfileInt("UnitSettings", "NumOfUnit", 0,FileName)
If NowUnitNum=0 Then
MessageBox(hMainWnd,"正常に読み込むことが出来ませんでした。","UnitAttachmenter",MB_OK)
Exit Sub
Else
i2=0
For i = 1 To NowUnitNum-1
wsprintf(buffer, "UnitSet%d", i)
GetPrivateProfileString(buffer,"UnitName", "", lpstrBuffer, 255,FileName)
GetPrivateProfileString(buffer,"Num","",lpstrBuffer2,255,FileName)
If lstrlen(lpstrBuffer) and lstrlen(lpstrBuffer2) Then
AddListItem(lpstrBuffer,GetDlgItem(hMainWnd,ListView1),i2)
SetListItem(lpstrBuffer2,GetDlgItem(hMainWnd,ListView1),i2,1)
i2=i2+1
End If
Next
End If
End Sub
オープンソースなのですが、最後の、End Subでエラーです。
hiraさんの、サンプルコードを使用させていただいています。(AddListItem,SetListItem)
おかしなコードを書いてしまっているでしょうか?
[hide=問題のコード][code]
Dim NowUnitNum As Long '現在のユニット数
Sub MainWnd_IDM_OPEN_MenuClick()
Dim ofn As OPENFILENAME
Dim FileName[MAX_PATH-1] As Byte
Dim i As Long
Dim i2 As Long
Dim buffer As String
Dim lpstrBuffer[254] As Byte
Dim lpstrBuffer2[254] As Byte
Dim lc As LVITEM
'OPENFILENAME構造体の初期化
FillMemory(VarPtr(ofn),Len(ofn),0)
ofn.lStructSize=Len(ofn)
ofn.hwndOwner=hMainWnd
ofn.lpstrFilter=Ex"SubAppendMission\0*.sam\0AppendMissionFiles\0*.apm\0テキストファイル\0*.txt\0すべてのファイル(*.*)\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 or OFN_EXPLORER or OFN_NOCHANGEDIR
ofn.lpstrDefExt="*"
'「ファイルを開く」ダイアログボックスを表示
If GetOpenFileName(ofn)=0 Then Exit Sub
'INIファイルからユニット数を読み込む
NowUnitNum=GetPrivateProfileInt("UnitSettings", "NumOfUnit", 0,FileName)
If NowUnitNum=0 Then
MessageBox(hMainWnd,"正常に読み込むことが出来ませんでした。","UnitAttachmenter",MB_OK)
Exit Sub
Else
i2=0
For i = 1 To NowUnitNum-1
wsprintf(buffer, "UnitSet%d", i)
GetPrivateProfileString(buffer,"UnitName", "", lpstrBuffer, 255,FileName)
GetPrivateProfileString(buffer,"Num","",lpstrBuffer2,255,FileName)
If lstrlen(lpstrBuffer) and lstrlen(lpstrBuffer2) Then
AddListItem(lpstrBuffer,GetDlgItem(hMainWnd,ListView1),i2)
SetListItem(lpstrBuffer2,GetDlgItem(hMainWnd,ListView1),i2,1)
i2=i2+1
End If
Next
End If
End Sub[/code][/hide]
オープンソースなのですが、最後の、End Subでエラーです。
hiraさんの、サンプルコードを使用させていただいています。(AddListItem,SetListItem)
おかしなコードを書いてしまっているでしょうか?