picture本身不是文本控件,文本是“画”上去的,换行需要用代码测量每个字在指定字体下的宽度,判断在当前picture的宽度之下,一行能容纳多少文字,剩下的文字就在下一行绘制。
创新互联专注于准格尔企业网站建设,响应式网站,商城网站建设。准格尔网站建设公司,为准格尔等地区提供建站服务。全流程按需开发网站,专业设计,全程项目跟踪,创新互联专业和态度为您提供的服务
两种方法:
图片框上盖个Label 向其输入内容。
载入图片,通过内存直接 DrawImage绘制个新图,然后在图上盖文字。最后赋值给图片框。
VB6的print 实质是向图片框打印文字,不管有无图都能在上面Print. 考虑速度和实现难度问题,如果纯粹显示,最好直接盖个Label最简单。第二种方法 需要考虑文字大小、颜色、坐标定位等等。如果一行文字显示不下,不会自动换行,得自己切。
鼠标取词其实很简单
在网上下载一个XdictGrb.dll(金山词霸取词用的链接库)
这里可以下载
然后新建一个工程,并引用XdictGrb.dll
窗体上4个label
代码如下:
Option Explicit
Implements IXDictGrabSink
Private È¡´Ê As GrabProxy
Private Sub Form_Load()
Set È¡´Ê = New GrabProxy
With È¡´Ê
.GrabEnabled = True
.GrabInterval = 25
.GrabMode = XDictGrabMouse
.AdviseGrab Me
End With
End Sub
Private Function IXDictGrabSink_QueryWord(ByVal WordString As String, ByVal lCursorX As Long, ByVal lCursorY As Long, ByVal SentenceString As String, lLoc As Long, lStart As Long) As Long
Dim TmpInt1 As Integer, TmpInt2 As Integer, I As Integer
For I = lLoc + 1 To 1 Step -1
If Mid(SentenceString, I, 1) = " " Then
TmpInt1 = I + 1: Exit For
End If
If I = 1 Then TmpInt1 = I
Next
For I = lLoc + 1 To Len(SentenceString)
If Mid(SentenceString, I, 1) = " " Then
TmpInt2 = I - 1: Exit For
End If
If I = Len(SentenceString) Then TmpInt2 = I
Next
If TmpInt1 lLoc + 1 Then TmpInt1 = lLoc + 1
If TmpInt2 lLoc + 1 Then TmpInt2 = lLoc + 1
Label1.Caption = 当前坐标" "(" lCursorX "," lCursorY ")"
Label2.Caption = "当前语句" SentenceString
Label3.Caption = "当前单词" Mid(SentenceString, TmpInt1, TmpInt2 - TmpInt1 + 1)
Label4.Caption = "当前字符" Mid(SentenceString, lLoc + 1, 1)
End Function