> すいません、言い方を間違えました。
> EDITBOXでは内部で「文字数」で扱っているのでずれます。
> InStrはバイト数で返ってくるので...
???
EDITBOXっていうのは自作したエディットボックスでしょうか???
普通のエディットボックスで以下のコードを実行した場合もズレますか?
EditBox1に対照文字列を入力して、EditBox2に検索文字列を入力。
CommandButton1かなにかを押したときに以下のコードが実行されるようにしてください。
[ここをクリックすると内容が表示されます] [ここをクリックすると非表示にします]コード:
Dim hEdit[1] As HWND
Dim lpStr[1] As LPSTR
Dim nLength[1] As Long
Dim i As Long
hEdit[0]=GetDlgItem(hMainWnd,EditBox1)
nLength[0]=GetWindowTextLength(hEdit[0])+1
lpStr[0]=malloc(nLength[0])
lpStr[0][GetWindowText(hEdit[0],lpStr[0],nLength[0])]=0
hEdit[1]=GetDlgItem(hMainWnd,EditBox2)
nLength[1]=GetWindowTextLength(hEdit[1])+1
lpStr[1]=malloc(nLength[1])
lpStr[1][GetWindowText(hEdit[1],lpStr[1],nLength[1])]=0
i=InStr(1,lpStr[0],lpStr[1])-1
If i=>0 Then
SendMessage(hEdit[0],EM_SETSEL,i,i+nLength[1]-1))
End If