by のぶあや » 2006年12月02日(土) 20:54
雷電さんのコードの明らかなバグを直しただけで、確認をしていませんでした。
しかもエディットボックスのつもりでいたりして・・・(死
今回はコンボボックスでしたね。
今回はコピペせずにきちんと書きました(あたりまえ
[ここをクリックすると内容が表示されます] [ここをクリックすると非表示にします]コード: 全て選択
Sub MainWnd_ComboBox1_SelChange()
/**'ここに「/」を入れると実行される部分が変わる
'新しく書いたコード
Dim hCB As HWND
Dim a As BytePtr, Pos As Long, Length As Long
hCB=GetDlgItem(hMainWnd, ComboBox1) 'ハンドルを取得
Pos=SendMessage(hCB, CB_GETCURSEL, 0, 0) '選択されているリストの位置を取得
Length=SendMessage(hCB, CB_GETLBTEXTLEN, Pos, 0) '位置を指定し、文字列長を取得
a=calloc(Length+1) 'NULL文字を含めた分のメモリを確保
SendMessage(hCB, CB_GETLBTEXT, Pos, a) '位置を指定し、文字列を取得
SendMessage(hMainWnd, WM_SETTEXT, 0, a) 'ウィンドウに表示
free(a) 'メモリ解放 前回忘れていました(汗
/*/
'7さんの書かれたコード(これはコピペ
Dim hCombo As HWND, index As Long
Dim a As LPSTR
hCombo=GetDlgItem(hMainWnd,ComboBox1)
index=SendMessage(hCombo,CB_GETCURSEL,0,0)
a=calloc(SendMessage(hCombo,CB_GETLBTEXTLEN,index,0)+1)
SendMessage(hCombo,CB_GETLBTEXT,index,a)
MessageBox(hMainWnd,a,"ファイルパス",MB_OK)
free(a)
/**/
End Sub
ほとんど同じですね(というかシンプルすぎて他に書きようがないだけなんだけど
こちらでは両方のコードでちゃんと取得できましたが・・・
一応そちらで書かれたコードと環境を教えていただけませんか?
雷電さんのコードの明らかなバグを直しただけで、確認をしていませんでした。
しかもエディットボックスのつもりでいたりして・・・(死
今回はコンボボックスでしたね。
今回はコピペせずにきちんと書きました(あたりまえ
[hide][code]Sub MainWnd_ComboBox1_SelChange()
/**'ここに「/」を入れると実行される部分が変わる
'新しく書いたコード
Dim hCB As HWND
Dim a As BytePtr, Pos As Long, Length As Long
hCB=GetDlgItem(hMainWnd, ComboBox1) 'ハンドルを取得
Pos=SendMessage(hCB, CB_GETCURSEL, 0, 0) '選択されているリストの位置を取得
Length=SendMessage(hCB, CB_GETLBTEXTLEN, Pos, 0) '位置を指定し、文字列長を取得
a=calloc(Length+1) 'NULL文字を含めた分のメモリを確保
SendMessage(hCB, CB_GETLBTEXT, Pos, a) '位置を指定し、文字列を取得
SendMessage(hMainWnd, WM_SETTEXT, 0, a) 'ウィンドウに表示
free(a) 'メモリ解放 前回忘れていました(汗
/*/
'7さんの書かれたコード(これはコピペ
Dim hCombo As HWND, index As Long
Dim a As LPSTR
hCombo=GetDlgItem(hMainWnd,ComboBox1)
index=SendMessage(hCombo,CB_GETCURSEL,0,0)
a=calloc(SendMessage(hCombo,CB_GETLBTEXTLEN,index,0)+1)
SendMessage(hCombo,CB_GETLBTEXT,index,a)
MessageBox(hMainWnd,a,"ファイルパス",MB_OK)
free(a)
/**/
End Sub
[/code][/hide]
ほとんど同じですね(というかシンプルすぎて他に書きようがないだけなんだけど
こちらでは両方のコードでちゃんと取得できましたが・・・
一応そちらで書かれたコードと環境を教えていただけませんか?