以上を踏まえて、テストコードを書いてみました。C++で書くと面倒なのでJavaScriptで。
<html> <head> <script type="text/javascript"> function test(value, prev) { var selection = document.selection; var range = selection.createRange(); if (range.text == "") range = document.body.createTextRange(); else range.collapse(prev); if (range.findText(value, prev ? -1 : 1)) range.select(); else alert('Not Found'); } </script> </head> <body> <p>abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz</p> <p><input type="text" name="text"></p> <p><input type="button" value="Next" onclick="test(text.value, false)"></p> <p><input type="button" value="Prev" onclick="test(text.value, true)"></p> </body> </html>
一応思ったような動作をするようです。というわけで、これをC++に移植しましょう。