線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:825
推到 Plurk!
推到 Facebook!

RichEdit中如何实现拖拽?

尚未結案
feeling
一般會員


發表:1
回覆:4
積分:1
註冊:2003-06-07

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-11-04 19:04:03 IP:159.226.xxx.xxx 未訂閱
在RichEdit编辑框中选中若干字符,用鼠标拖拽到该编辑框的其他位置,松开鼠标,选中的字符就跑到了当前鼠标所在的位置处。 难点是如何确定鼠标所在处的文本位置,我是这样处理的: int __fastcall TForm1::GetSelstartByPos( TRichEdit *RE, int X, int Y ) { TPoint P = Point(X, Y); return SendMessage(RE->Handle, EM_CHARFROMPOS, 0, (long)&P ); } 但是,该方法返回的信息总是有问题! // 获取当前光标在目标对象中的位置(拖拽事件中) TPoint P; if ( GetCursorPos(&P) ) { //取鼠标位置的 Index P = ScreenToClient(P); RichEdit1->SelStart = GetSelstartByPos( RichEdit1, P.x, P.y ); //ShowMessage( RichEdit1->SelStart ); // 总是不对??? } RichEdit1->SelText = "×××"; 这样情况稍微有所改善,但是只能够获取之前的光标位置,还是不能够动态更改: TPoint P; if ( GetCursorPos(&P) ) { P = ScreenToClient(P); SendMessage( RichEdit1->Handle, WM_LBUTTONDOWN, MK_LBUTTON, GetSelstartByPos( pRE, P.x, P.y ) ); SendMessage( RichEdit1->Handle, EM_REPLACESEL, 1, (long)TreeNode->Text.c_str() ); } NULL 發表人 - feeling 於 2003/11/04 19:15:24
------
NULL
feeling
一般會員


發表:1
回覆:4
積分:1
註冊:2003-06-07

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-11-05 13:30:59 IP:159.226.xxx.xxx 未訂閱
已经解决了  是这样的: // 这里取鼠标位置的方法不对 >
------
NULL
系統時間:2024-05-17 20:01:45
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!