delphi 怎么在WebBrowser控件里获得光标的位置

delphi 怎么在WebBrowser控件里获得光标的位置,第1张

网上借鉴的,思路如下

WebBrowser没有mouseMove事件,但它还是由WinControl继承下来的,所以有窗体handle,自定义一个win消息捕获来自此handle的鼠标移动

use MSHTML;

private

{ Private declarations }

FLoaded: Boolean;

procedure AppMsg(var Msg: TagMsg; var Handled: Boolean);

procedure GetContronl;

end;

procedure TForm1FormShow(Sender: TObject);

begin

FLoaded:=False;

ApplicationOnMessage := AppMsg;

wb1Navigate('about:<head><title>标题></title><body>页面内容</body>');

end;

procedure TForm1wb1DocumentComplete(Sender: TObject;

const pDisp: IDispatch; var URL: OleVariant);

begin

FLoaded:=True;

end;

procedure TForm1AppMsg(var Msg: TagMsg; var Handled: Boolean);

var

mPoint : TPoint;

begin

if IsChild(wb1Handle, MsgHwnd) and

(MsgMessage = WM_MOUSEMOVE) and FLoaded then

begin

GetCursorPos(mPoint);

Caption:=IntToStr(mPointX);

GetContronl;

Handled:=True;

end;

end;

procedure TForm1GetContronl;

var

myPoint: TPoint;

begin

//myPoint := MouseCursorPos;

myPoint := wb1ScreenToClient(myPoint);

Caption := IntToStr(myPointX)+'+'+IntToStr(myPointY);

end;

textbox中有一个属性叫:SelectionStart该属性可以得到当前光标的位置

例如:添加一个textbox和button 运行程序

textbox中的内容是abcdefghigklmn

button的点击事件内容为:

private void button_Click(object sender, EventArgs e)

{

MessageBoxShow(thistextBox1SelectionStartToString());

}

你将光标放到f和g之间

然后点击button

就会d出有个消息框,显示是:6 即光标位置是6

应该先得到文本长度,然后用 SetSel 方法。

假如得到的长度是 dwLen ,那么可以这样:

((CEdit)GetDlgItem(IDC_EDIT2))->SetSel(dwLen,dwLen,TRUE);

不是程序本事说明已经在程序之外了,那就要调用系统的API来获取鼠标位置了。

[DllImport("user32dll")]

internal

static

extern

bool

GetCursorPos(out

Point

lpPoint);

想获取坐标的时候就调用:

Point

mouserPoint

=

new

Point();

GetCurosoPos(out

mouserPoint);

这样鼠标的坐标就存在mouserPoint变量里了

还有一个土办法,就是把你的程序界面全透明,最大化,然后鼠标移动在屏幕其实就是在你的程序里面移动,鼠标点击的时候让程序最小化,使后面的元素能接收到事件就行了。

方法有很多,关键要多想。

以上就是关于delphi 怎么在WebBrowser控件里获得光标的位置全部的内容,包括:delphi 怎么在WebBrowser控件里获得光标的位置、c# 怎么获得 文本框中光标所在的位置、如何获得combobox中edit控件的光标位置等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9567146.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存