VCMFC,WebBrowser控件找到网页元素后如何将滚动条定位到那里如何将滚动条定位到指定元素位置

VCMFC,WebBrowser控件找到网页元素后如何将滚动条定位到那里如何将滚动条定位到指定元素位置,第1张

先说一句,现在MFC最新的WebBrowser是CWebBrowser2

SCROLLINFO scrollinfo;

GetScrollInfo(SB_HORZ, &scrollinfo, SIF_ALL);

switch (nSBCode)

{

case SB_LINERIGHT:

  if (scrollinfonPos < scrollinfonMax){

  scrollinfonPos += 10;

  SetScrollInfo(SB_HORZ, &scrollinfo);

  ScrollWindow(-10, 0);}

  break;

}

使用 GetScrollInfo 得到滚动信息 将信息保存于 SCROLLINFO 类的数据中

然后根据 nSBCode 来判断是哪个滚动条的哪个动作,做了调整

下面列出滚动的相关函数

afx_msg void OnHScroll( 

  UINT nSBCode, 

  UINT nPos, 

  CScrollBar pScrollBar 

);

各个参数的意义:

nSBCode

指定指示用户滚动请求的滚动条代码。 此参数可以是下列值之一:

      SB_LEFT 滚动到最左侧。

      SB_ENDSCROLL 结束滚动。

      SB_LINELEFT 滚动。

      SB_LINERIGHT 滚动权限。

      SB_PAGELEFT 滚动一页。

      SB_PAGERIGHT 滚动一页权限。

      SB_RIGHT 滚动到最右边。

      SB_THUMBPOSITION 为绝对位置的滚动。         当前位置由 nPos 参数指定。

      SB_THUMBTRACK 拖动到指定位置的滚动框。 当前位置由 nPos 参数指定。

nPos

      如果滚动条代码是 SB_THUMBPOSITION 或 SB_THUMBTRACK,指定滚动框位置;否则,未使用。 基于初始滚动大小,nPos 可以为负的,因此如果需要,转换到 int。

pScrollBar

      如果滚动消息来自滚动条控件,其中包含指向该控件。 //如果是手动添加的滚动控件

      如果用户单击窗口滚动条,此参数是 NULL。

      指针可能是瞬态的,不应存储以供将来使用。

还有什么问题可以私信我~

webBrowser1DocumentActiveElementId

在webbrowser的Document_MouseUp/Document_MouseDown事件里写

补充:C#是微软公司发布的一种面向对象的、运行于NET Framework之上的高级程序设计语言。并定于在微软职业开发者论坛(PDC)上登台亮相。C#是微软公司研究员Anders Hejlsberg的最新成果。C#看起来与Java有着惊人的相似;它包括了诸如单一继承、接口、与Java几乎同样的语法和编译成中间代码再运行的过程。但是C#与Java有着明显的不同,它借鉴了Delphi的一个特点,与COM(组件对象模型)是直接集成的,而且它是微软公司 NET windows网络框架的主角。

HtmlElement btn=thiswebBrowser1DocumentgetElementById("这里填写按钮或a标签的id");

btnClick+=btn_Click;

private void btn_Click(object sender,HtmlElementEventArgs e){

//这里是你的打开新的窗口Form1的 *** 作

1、在打开的ie浏览器窗口右上方点击齿轮图标,选择“Internet选项”,如下图所示:

2、在打开的Internet选项窗口中,切换到安全栏,在安全选卡中点击“自定义级别”,如下图所示:

3、在“安全设置-Internet 区域”界面找到“Java 小程序脚本”、“活动脚本”,并将这两个选项都选择为“禁用”,然后点击确定,如下图所示:

①新建一个基于对话框的工程,命名为Web,然后在对话框上单击右键,选择Insert ActiveX Control…在d出的对话框中选择Registered ActiveX Controls文件夹下的Microsoft Web浏览器,点击OK。

此时对话框上已经出现了WebBrowser控件,调整它的大小以适合对话框的大小。

②选择WebBrowser控件,点击View/ClassWizard,选择Member Variables,单击Add Variable按钮,此时会d出对话框,该控件加入一个变量,我们把它命名为m_Web。

③在ClassWizard中选择OnInitDialog()函数,在里面加入如下代码:

m_WebNavigate("d:\\temp\\html_doc\\indexhtml",NULL,NULL,NULL,NULL);

第一个参数即你要浏览的URL地址,可以是一个文件,也可以是一个地址(如>

HtmlElement btn=thiswebBrowser1DocumentgetElementById("这里填写按钮或a标签的id");

btnClick+=btn_Click;

private void btn_Click(object sender,HtmlElementEventArgs e){

//这里是你的打开新的窗口Form1的 *** 作

}

我将你的上面的html代码复制到一个testhtml文件中

<html>

<head>

<title>Test Page</title>

</head>

<body>

<input name="txtCSRQ" class="textbox" id="txtCSRQ" type="text" readonly="readonly" value="1993-05-10"/>

</body>

</html>

然后在vbnet的webbrowser中加载这个testhtml,加载完毕后点击一个按钮获取input的value值,实现代码如下:

' 此方法为Form1的加载事件

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBaseLoad

' 加载本地文档testhtml

WebBrowser1Url = New Uri(StringFormat("file:///{0}/testhtml", ApplicationStartupPath))

' 文档没有加载完毕之前将按钮禁用

Button1Enabled = False

End Sub

' 此方法为Button1的Click事件

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1Click

Dim doc As HtmlDocument = WebBrowser1Document

' 查找ID为txtCSRQ的元素

Dim element As HtmlElement = docGetElementById("txtCSRQ")

' 如果找到了改元素

If element IsNot Nothing Then

' 显示该元素的值

MessageBoxShow(elementGetAttribute("value"))

End If

End Sub

' 此方法为WebBrowser的DocomentCompleted事件

Private Sub WebBrowser1_DocumentCompleted(sender As Object, e As WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1DocumentCompleted

' 文档testhtml加载完毕后,使按钮可用

Button1Enabled = True

End Sub

以上就是关于VC/MFC,WebBrowser控件找到网页元素后如何将滚动条定位到那里如何将滚动条定位到指定元素位置全部的内容,包括:VC/MFC,WebBrowser控件找到网页元素后如何将滚动条定位到那里如何将滚动条定位到指定元素位置、C#如何获得webbrowser控件中打开网页中的控件的ID、c#中winform的webbrowser控件在窗体中如何获取按钮或者的事件等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存