Abiword中鼠標在文檔中位置定位
?
-
利用鼠標消息獲取鼠標在客戶區(qū)的坐標信息
FV_View::_getMouseContext函數,layout view mouse pos x?, pos y
-
減去頁面的外邊距
FV_View::_getPageForXY,具體算法參考: Abiword頁面布局 ,系統默認的左邊距是:1500,上邊距是:375
-
減去頁面內邊距
fp_Page::mapXYToPosition函數中調用fp_VerticalContainer::mapXYToPosition(列)時,自動減去頁面內邊距。也可以理解成列的外邊距,默認是1440。根據頁面列的設置,循環(huán)所有的列用于確定坐標是否包含在該列中,然后調用fp_VerticalContainer::mapXYToPosition,該函數中要確定現在的y坐標能定位到那一行上(fp_Line)?
Find first container that contains the point. First has its lower level below the desired Y
position. Note that X-positions are completely ignored here.?
-
在fp_Line::mapXYToPosition函數中,循環(huán)該行包含的fp_Run對象,判斷x坐標,最后定位x到Run對象內
- fp_TextRun::mapXYToPosition,該函數調用GR_Win32USPGraphics::XYToPosition函數定位鼠標的文檔中的位置
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
