多分OSによってエディットメッセージがバイト単位だったり文字単位だったりっていう問題のことを言っているのだと思います。(HSP HELP CENTER参照)
その点の対処方法は分かりません。
その問題を無視して「検索」機能は次のような感じで実装してみました。
pos 0, 0
button "find", *find
pos 64, 0
findstr = ""
input findstr, ginfo_winx - 64,,0
pos 0, 24
notesel editstr: noteload "hsptmp"
mesbox editstr, ginfo_winx, ginfo_winy - 24, 5, 0
iEdit = stat
hEdit = objinfo( iEdit, 2 )
stop
*find
sendmsg hEdit, 0x00B0, 0, varptr(rsel) ; EM_GETSEL
p = instr( editstr, rsel, findstr )
if p = -1{
dialog "Not Found \"" + findstr + "\" .",,"Result
}
else{
objsel iEdit
sendmsg hEdit, 0x00B1, rsel+p, rsel+p+strlen(findstr) ; EM_SETSEL
}
stop
ちなみに私の環境は Windows XP SP2 です。