如何正確取得游標所在位置的字元 |
缺席
|
g6101
高階會員 發表:22 回覆:129 積分:110 註冊:2002-06-15 發送簡訊給我 |
各位前輩:
小弟在 C Builder 2010 使用 TRichEdit 元件時,無法正確取得游標所在位置的字元,還請前輩們不吝賜教,謝謝! 問題描述: 在第一行取得字元是正確的,但是第二行之後就不正確,部份程式碼如下: [code cpp] void __fastcall TMainForm::RichEdit1SelectionChange(TObject *Sender) { wchar_t wa; wa = RichEdit1->Text[RichEdit1->SelStart 1]; Caption = wa; } [/code] |
老大仔
尊榮會員 發表:78 回覆:837 積分:1088 註冊:2006-07-06 發送簡訊給我 |
|
g6101
高階會員 發表:22 回覆:129 積分:110 註冊:2002-06-15 發送簡訊給我 |
|
g6101
高階會員 發表:22 回覆:129 積分:110 註冊:2002-06-15 發送簡訊給我 |
我找到答案了!原來要取得游標所在字元,必須從行段陣列(TStrings)結構著手進行,部份程式碼參考如下:
(RichEdit1更名為src) [code cpp] //從游標位置取得行號 int line = SendMessageW(src->Handle,EM_LINEFROMCHAR,src->SelStart,0); //取得所在行第幾個字 int ci = src->SelStart - SendMessageW(src->Handle,EM_LINEINDEX,line,0); //從行段陣列中取回字元 wchar_t wa = src->Lines->Strings[line][ci 1]; [/code] 注意事項: 必須留意游標位置在行尾問題,以免誤取不存在的位置,而致系統發生錯誤。 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |