自动换行的问题前面讲过,就是将rightmargin设定为一个很大的值,例如60000
解决方案 »
- 安装包运行出错:
- 升级到win7后的问题
- (求助)telnet远程机某文件夹,无交互
- VB 有没方法把rtf 或txt文本内容转成BMP图片
- (求助)计算微积分的计算器源码,谢谢!
- 怎么连接远程数据啊
- 测试程序稳定性的问题,请高手帮忙分析啊
- 请教:如何用webbrowser控件,将http://www.abc.com/picture/1.jpg保存成c:\picture\1.jpg???
- 请问我调用什末函数可以打开保存对话框,谢谢!
- 現在這個系統,經常有數值四舍五入的問題,怎麼解決???
- 谁有foxbase,E我一份.急用!
- 为什么我在使用shell32.dll中的API函数时总是提示:"找不到入口点"
(ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, _
lParam As Any) As Long
Const EM_GETLINECOUNT = &HBAPrivate Sub Command1_Click()
Debug.Print SendMessage(RichTextBox1.hwnd, EM_GETLINECOUNT, 0, 0)
End Sub
你写的这个是取得行数的代码,而且是取得总行数,另外rightmargin设置一个很大的数可以解决自动换行的问题,但是如果更大一些,比如设置为6000000,又不能自动换行了,每一行更短了,请问这是什么原因?这个属性的意思我看msdn没有看懂,是不是设置从左到右的总长度?
就好想是光标所在的坐标值一样,行数是Y,列数就是X
属性设置为True。然后在Form1的代码窗口中加入如下代码:Option ExplicitPrivate Declare Function SendMessage Lib "user32" Alias "SendMessageW" _
(ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, _
lParam As Any) As Long
Private Declare Function SendMessageByRef Lib "user32" Alias "SendMessageA" _
(ByVal hwnd As Long, ByVal wMsg As Long, wParam As Long, _
lParam As Long) As Long
Const EM_LINEFROMCHAR = &HC9
Const EM_LINEINDEX = &HBB
Const EM_GETLINE = &HC4
Const EM_GETSEL = &HB0Dim iLineX, iLineY As LongSub GetCurPos(txtA As TextBox)
Dim l, l1, l2 As Long
Dim astr As String * 256
l = SendMessage(txtA.hwnd, EM_LINEINDEX, -1, 0)
iLineY = SendMessage(txtA.hwnd, EM_LINEFROMCHAR, l, 0)
SendMessageByRef txtA.hwnd, EM_GETSEL, l1, l2
iLineX = l1 - l
Label1.Caption = "列:" + Str(iLineX)
Label2.Caption = "行:" + Str(iLineY)
End SubPrivate Sub Form_Load()
Dim iFile
Dim astr As String
Label1.Height = 300: Label2.Height = 300
Text1.Left = 0: Text1.Top = 0
Text1.Text = ""
Label1.Caption = ""
Label2.Caption = ""
iFile = FreeFile
Open "C:\windows\readme.txt" For Input As #iFile
Do
Line Input #iFile, astr
Text1.Text = Text1.Text + astr + vbCrLf
Loop Until EOF(iFile)
Close iFile
End SubPrivate Sub Form_Resize()
Label1.Top = Me.ScaleHeight - 300
Label2.Top = Me.ScaleHeight - 300 Label1.Left = 0: Label2.Left = 1200
Label1.Width = 1200
Label2.Width = 1200
Text1.Width = Me.ScaleWidth
Text1.Height = Me.ScaleHeight - Label1.Height
End SubPrivate Sub Text1_Click()
GetCurPos Text1
End SubPrivate Sub Text1_KeyUp(KeyCode As Integer, Shift As Integer)
GetCurPos Text1
End Sub
在运行程序前,确保在你的硬盘上有 c:\windows\readme.txt 这个文件。否则程序会出错。然后运行
程序。当在编辑文本时,可以看到在窗口底部可以显示当前光标所在的行、列值。