怎么在WebBrowser1控件上面显示文字
我想在WebBrowser1上写上一句话。于是使用了Label1,BackStyle背景设为透明的。不料一放上去就没了!跑到WebBrowser1后面看不到了!只有创建个...
我想在WebBrowser1上写上一句话。于是使用了Label1,BackStyle背景设为透明的。不料一放上去就没了!跑到WebBrowser1后面看不到了!只有创建个按钮什么的还可以,但按钮又不能透明,不适合写文字。这该如何是好!
对了,再请高手麻烦说个事。WebBrowser1没有MouseMove移动鼠标触发的事件,怎么办啊?谢谢了!
补充:
xiaobingking先生,你写的这些代码怎么在VB上全是红色的?错误百出啊。我的VB版本是VB6.0
c20090218先生,你的思路可能很好——可惜我是门外汉,要是能看懂你说的,呵呵,就不会这问题难啦,最好有源码,谢谢! 展开
对了,再请高手麻烦说个事。WebBrowser1没有MouseMove移动鼠标触发的事件,怎么办啊?谢谢了!
补充:
xiaobingking先生,你写的这些代码怎么在VB上全是红色的?错误百出啊。我的VB版本是VB6.0
c20090218先生,你的思路可能很好——可惜我是门外汉,要是能看懂你说的,呵呵,就不会这问题难啦,最好有源码,谢谢! 展开
展开全部
想在webbrowser上写字是不可能的,以上三种方法我都看了,完全解决不了问题qw开头的那位,想法很好,但是我可以告诉你,不可行,你试试就知道了,这样做后文字会粗细不均,因为屏幕上显示的文字其实有一部份是圆滑处理的,那部分在图像中将就叫半透明,话说直接的窗体透明代码能做到半透明么?至于xiao的回答,这是vb.net的代码,不是vb6的,没法用,所以也不行。至于究竟怎么办,我可以告诉您一种思路,去百度搜索:“vb6 控件背景透明”的代码,下载,打开后有一个控件,你将自己的label放进去,写上文字,然后将这个控件放在窗体的webbrowser之上,执行透明指令即可(透明指令在该代码中有说明),简单而有效的方法只能这么做。至于为什么label放不在webbrowser上,原因就是,vb6将控件分为重控件和轻控件,轻控件永远放不到重控件上边来,因为所谓轻控件其实是系统在屏幕上绘制出来的,并不是真正的控件,而重控件是真的控件,常见轻控件有label、image、line这些控件,常见重控件有picturebox、command按钮等。希望对您有所帮助!
展开全部
1、Me.WebBrowser1.DocumentText = "AA"
2、
AddHandler WebBrowser1.Document.MouseMove, AddressOf MouseMove
Private Sub MouseMove(ByVal sender As Object, ByVal e As HtmlElementEventArgs)
Dim mouse_X As Integer = e.ClientMousePosition.X
Dim mouse_Y As Integer = e.ClientMousePosition.Y
'具体公式 参考 Mission.CalcnPointXY()
Dim s1 As String = String.Format("距离左上绝对值 {0},{1}", mouse_X, mouse_Y)
Dim s2 As String = String.Format("距离左上相对值 {0},{1}", Math.Round(mouse_X / _browser.ClientSize.Width, 2), Math.Round(mouse_Y / _browser.ClientSize.Height, 2))
Dim s3 As String = String.Format("距离中上绝对值 {0},{1}", Math.Round(mouse_X - _browser.ClientSize.Width / 2, 0), mouse_Y)
Dim s4 As String = String.Format("距离中上相对值 {0},{1}", Math.Round(mouse_X / _browser.ClientSize.Width - 0.5, 2), Math.Round(mouse_Y / _browser.ClientSize.Height, 2))
CType(Me.ParentForm, MainForm).MousePointToolStripStatusLabel.Text = String.Format("{0} {1} {2} {3}", s1, s2, s3, s4)
End Sub
2、
AddHandler WebBrowser1.Document.MouseMove, AddressOf MouseMove
Private Sub MouseMove(ByVal sender As Object, ByVal e As HtmlElementEventArgs)
Dim mouse_X As Integer = e.ClientMousePosition.X
Dim mouse_Y As Integer = e.ClientMousePosition.Y
'具体公式 参考 Mission.CalcnPointXY()
Dim s1 As String = String.Format("距离左上绝对值 {0},{1}", mouse_X, mouse_Y)
Dim s2 As String = String.Format("距离左上相对值 {0},{1}", Math.Round(mouse_X / _browser.ClientSize.Width, 2), Math.Round(mouse_Y / _browser.ClientSize.Height, 2))
Dim s3 As String = String.Format("距离中上绝对值 {0},{1}", Math.Round(mouse_X - _browser.ClientSize.Width / 2, 0), mouse_Y)
Dim s4 As String = String.Format("距离中上相对值 {0},{1}", Math.Round(mouse_X / _browser.ClientSize.Width - 0.5, 2), Math.Round(mouse_Y / _browser.ClientSize.Height, 2))
CType(Me.ParentForm, MainForm).MousePointToolStripStatusLabel.Text = String.Format("{0} {1} {2} {3}", s1, s2, s3, s4)
End Sub
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1、Label 控件本质上是对窗体进行 GDI 操作(绘图),所以只会画在父窗体(窗体或能作为容器的控件)上。所以其他控件都会把它覆盖。
2、可以新建自定义控件,设计一个。然后用 DrawText,再 SetLayeredWindowAttributes 即可。以上是 API 函数,用法在网上很多的。
3、用 SetWindowLong 截获 WebBrowser1 的 WM_MOUSEMOVE 消息,用 GetKeyState 获取鼠标(左中右)、Ctrl、Alt、Shift 键状态就可以进行处理了。最后不要忘了 CallWindowProc。
2、可以新建自定义控件,设计一个。然后用 DrawText,再 SetLayeredWindowAttributes 即可。以上是 API 函数,用法在网上很多的。
3、用 SetWindowLong 截获 WebBrowser1 的 WM_MOUSEMOVE 消息,用 GetKeyState 获取鼠标(左中右)、Ctrl、Alt、Shift 键状态就可以进行处理了。最后不要忘了 CallWindowProc。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
我有个思路:
再添加一个form,名为form2,把它的bordstyle设为0,再添加label,设为透明
form2代码:
Option Explicit
'窗体透明声明
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function SetLayeredWindowAttributes Lib "user32" (ByVal hwnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long
Private Const WS_EX_LAYERED = &H80000
Private Const GWL_EXSTYLE = (-20)
Private Const LWA_COLORKEY = &H1
Private Sub Form_Load()
form2.BackColor = vbBlue 'vbBlue
Dim rtn As Long
rtn = GetWindowLong(hwnd, GWL_EXSTYLE)
rtn = rtn Or WS_EX_LAYERED
SetWindowLong hwnd, GWL_EXSTYLE, rtn
SetLayeredWindowAttributes hwnd, vbBlue, 0, LWA_COLORKEY 'vbBule
End Sub
在form1里加入按钮,代码:form2.show,你再调整form2的位置,使它移到webbrowser上,这样也许可以
再添加一个form,名为form2,把它的bordstyle设为0,再添加label,设为透明
form2代码:
Option Explicit
'窗体透明声明
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function SetLayeredWindowAttributes Lib "user32" (ByVal hwnd As Long, ByVal crKey As Long, ByVal bAlpha As Byte, ByVal dwFlags As Long) As Long
Private Const WS_EX_LAYERED = &H80000
Private Const GWL_EXSTYLE = (-20)
Private Const LWA_COLORKEY = &H1
Private Sub Form_Load()
form2.BackColor = vbBlue 'vbBlue
Dim rtn As Long
rtn = GetWindowLong(hwnd, GWL_EXSTYLE)
rtn = rtn Or WS_EX_LAYERED
SetWindowLong hwnd, GWL_EXSTYLE, rtn
SetLayeredWindowAttributes hwnd, vbBlue, 0, LWA_COLORKEY 'vbBule
End Sub
在form1里加入按钮,代码:form2.show,你再调整form2的位置,使它移到webbrowser上,这样也许可以
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你好,Label属于弱控件(或者说轻量级控bai件),与webbrowser不在同一个du层次,因此label是绝对不可能覆盖webbrowser。其zhi实你dao想让webbrowser只能看不能操作,有更正规的办法实现,就是把webbrowser放入一个容器控件(PictureBox或Frame)中,然后把这个容器控件的Enabled属性设为False,这样的话运行后用户就无法鼠标或键盘对webbrowser进行操作了。如果你的窗体中除了webbrowser外没有其他控件,那么也可以不用加入容器控件,直接把窗体的Enabled属性设为False即可。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |