by Mario2 » 2005年12月11日(日) 18:36
ボタンをクリックしたときにPCのCDドライブを確認し、CDドライブがあるだけをメニューに追加して表示させたいのです。
このように(一部おかしい所もあるかもしれませんが…) [ここをクリックすると内容が表示されます] [ここをクリックすると非表示にします]
コード: 全て選択
Function DriveSelect() As String
Dim hMenu As HMENU
Dim udtMII As MENUITEMINFO
Dim Buf As String
hMenu=CreatePopupMenu()
Dim buf[MAX_PATH] As Byte
Dim Ptr As BytePtr
GetLogicalDriveStrings(MAX_PATH,buf)
Ptr=buf 'ポインタを代入
While GetByte(Ptr) '先頭がNULL以外のとき
MsgBox NULL,MakeStr(Ptr)
'GetDriveType(Ptr)=DRIVE_CDROM
With udtMII
.cbSize=Len(udtMII)
.fMask=MIIM_TYPE Or MIIM_ID Or MIIM_STATE
.fType=MFT_STRING
.dwTypeData=Ptr
.cch=Len(MakeStr(Ptr))
.wID=Val("E")
InsertMenuItem(hMenu,0,MF_BYCOMMAND,udtMII)
End With
Ptr=Ptr+lstrlen(Ptr)+1
Wend
Dim Ret As Long,poi As POINTAPI:GetCursorPos(poi)
Ret=TrackPopupMenu(hMenu,TPM_LEFTALIGN Or TPM_TOPALIGN Or TPM_RETURNCMD,
poi.x,poi.y,0,hMainWnd,ByVal NULL)
Select Case Ret
Case Val("E")
DriveSelect="E:\"
End Select
End Function
しても、1つしか出来なく、どんな風に書けば良いのかわかりません。
Select Caseで分岐させても複数ある場合はどんな書き方をすればよいのか悩んでいます。
(実現したいことは、例を言うとWMP(10)のプレイ ビューの右の小さい▼をクリックしたときに出るようなものです。)
よろしくお願いします。
ボタンをクリックしたときにPCのCDドライブを確認し、CDドライブがあるだけをメニューに追加して表示させたいのです。
[hide=このように(一部おかしい所もあるかもしれませんが…)]
[code]
Function DriveSelect() As String
Dim hMenu As HMENU
Dim udtMII As MENUITEMINFO
Dim Buf As String
hMenu=CreatePopupMenu()
Dim buf[MAX_PATH] As Byte
Dim Ptr As BytePtr
GetLogicalDriveStrings(MAX_PATH,buf)
Ptr=buf 'ポインタを代入
While GetByte(Ptr) '先頭がNULL以外のとき
MsgBox NULL,MakeStr(Ptr)
'GetDriveType(Ptr)=DRIVE_CDROM
With udtMII
.cbSize=Len(udtMII)
.fMask=MIIM_TYPE Or MIIM_ID Or MIIM_STATE
.fType=MFT_STRING
.dwTypeData=Ptr
.cch=Len(MakeStr(Ptr))
.wID=Val("E")
InsertMenuItem(hMenu,0,MF_BYCOMMAND,udtMII)
End With
Ptr=Ptr+lstrlen(Ptr)+1
Wend
Dim Ret As Long,poi As POINTAPI:GetCursorPos(poi)
Ret=TrackPopupMenu(hMenu,TPM_LEFTALIGN Or TPM_TOPALIGN Or TPM_RETURNCMD,
poi.x,poi.y,0,hMainWnd,ByVal NULL)
Select Case Ret
Case Val("E")
DriveSelect="E:\"
End Select
End Function[/code][/hide]しても、1つしか出来なく、どんな風に書けば良いのかわかりません。
Select Caseで分岐させても複数ある場合はどんな書き方をすればよいのか悩んでいます。
(実現したいことは、例を言うとWMP(10)のプレイ ビューの右の小さい▼をクリックしたときに出るようなものです。)
よろしくお願いします。