[対象バージョン]
C++Builder 1.0J
[説明]
C++Builderで検索した文字が検索ウインドウの下に隠れないようにする方法です。
[対処法]
GetCaretPosで現在のカーソル位置を調べて、重ならないように検索ウインドウの位置を上下に移動させます。
[サンプルソース]
//検索結果が選択されている状態にして次のコードを加えると、 //重ならない位置にウインドウが移動します。 //reはRichEdit、rdはReplaceDialogです。 POINT p; RECT r; int h,y; //カーソル位置を得る re->SetFocus(); GetCaretPos(&p); //検索ウインドウの縦幅を得る GetWindowRect(rd->Handle, &r); h= r.bottom-r.top; //移動幅を求める y= p.y+h>re->ClientHeight? -h: re->SelAttributes->Height; //スクリーン座標に変換する p= re->ClientToScreen(p); //検索ウインドウを移動させる rd->Top= p.y+y;