TWebBrowser中,如何得知Cursor所在的“环境”
TWebBrowser中,如何得知Cursor所在的“环境”
我说明一下我所谓的“环境”表示什么意思
好比说,我在TWebBrowser内容里某个Table某个Cell点一下,
Cursor现在的“环境”就是在此Cell中,
这个Cell背景是什么颜色,如何取得
再外一点,Cursor当然也在此Table内,那么此Table的线粗,线颜色,表背景色,如何取得
我还想知道,现在Cursor位于这张 M x N 的table 的第几行第几格里(好写代码来修改此表)。
最后,若我知道我在此 table 的第 3 行,我想要在此行上插入一行,
(且不考虑画面如何设计)代码要怎么实现呢
这次问的问题多些,
请选择你们正好知道的回答,
谢谢了!
[解决办法]
(webbrowser.Document as IHTMLDocument2).elementFromPoint(p.X, p.Y);
以表格为例,如果没有返回元素,就找父元素,直到元素为tr(行)td(列)或table(表格).
找到后,元素有inner,outter html和text,这样你就知道了cell的情况.
这是从原理上说的,而且,我相信肯定可行,不过,我没有实做过.
删除插入操作我觉得比较麻烦,我看过MSDN相关内容,因为要支持W3C标准,所以,没有提供直接的delete及insert行列的函数,不过,是可以自己根据DOM处理的.比如,要删除一行,就是从当前表格里删除该node.
[解决办法]
IHTMLCaret::MoveMarkupPointerToCaret
IMarkupPointer::Left
IMarkupPointer::Right