FindDialog |
尚未結案
|
AJCooer
初階會員 發表:48 回覆:52 積分:25 註冊:2004-02-12 發送簡訊給我 |
|
pwipwi
版主 發表:68 回覆:629 積分:349 註冊:2004-04-08 發送簡訊給我 |
AJCooer你好:
參考下面的程式碼,看能不能合乎需求?主要是設定SelStart。
void __fastcall TForm1::Button1Click(TObject *Sender) { FindDialog1->Position = Point(RichEdit1->Left RichEdit1->Width, RichEdit1->Top); FindDialog1->Execute(); } void __fastcall TForm1::FindDialog1Find(TObject *Sender) { int FoundAt, StartPos, ToEnd; // begin the search after the current selection // if there is one // otherwise, begin at the start of the text if (RichEdit1->SelLength) StartPos = RichEdit1->SelStart RichEdit1->SelLength; else StartPos = 0; // ToEnd is the length from StartPos // to the end of the text in the rich edit control ToEnd = RichEdit1->Text.Length() - StartPos; FoundAt = RichEdit1->FindText(FindDialog1->FindText, StartPos, ToEnd, TSearchTypes()<< stMatchCase); if (FoundAt != -1) { RichEdit1->SetFocus(); RichEdit1->SelStart = FoundAt; RichEdit1->SelLength = FindDialog1->FindText.Length(); } } |
AJCooer
初階會員 發表:48 回覆:52 積分:25 註冊:2004-02-12 發送簡訊給我 |
|
pwipwi
版主 發表:68 回覆:629 積分:349 註冊:2004-04-08 發送簡訊給我 |
引言: pwipwi兄 謝謝你 你的這個是 Help中的範例 我就是覺得很奇怪,RichEdit的資料很多時 它的確會找到要搜尋的字串,可是RichEdit不會跟著 Scroll(捲動),所以所搜尋到的資料如果在RichEdit的很後面時. 那user不會知道是否已經搜尋到? 我要的是希望RichEdit能夠跟著捲動, 還是謝謝你 < >< >OOPS...這可麻煩了… 那試試用SetScrollPos(Handle,SB_VERT,int nPos,BOOL bRedraw); 或SendMessage來"手動"?…(不知道有沒有更漂亮的方法呢?) SendMessage(RichEdit->Handle,WM_VSCROLL,SB_PAGEDOWN,0);發表人 - pwipwi 於 2004/06/28 15:43:08 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |