如何在RichTextBox中实现自动滚屏的功能

textstar 2000-08-08 08:12:00
我想用VB中的RICHTEXTBOX实现“自动滚屏”的功能请问各位高手如何结决,谢谢!我的 e-mail:topdiy@ccidnet.com
...全文
370 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Un1 2000-08-10
  • 打赏
  • 举报
回复
唉!直接设SelStart算了。
prefix 2000-08-09
  • 打赏
  • 举报
回复
SendMessage Text1.hwnd, EM_LINESCROLL, 0, ByVal -1
这里的-1以是向下,如果是1则向上(指文字滚动的方向),看你希望它怎么滚动(看字要向上还是要向下)。这个只有在文本满一屏以上才行,就是说这个功能和你按滚动条一样。
prefix 2000-08-08
  • 打赏
  • 举报
回复
在 form 的声明部分:
Const EM_LINESCROLL = &HB6
Private Declare Function SendMessageLong Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
然后使用一个timer定时触发下面的函数:
SendMessageLong Richtextbox.hwnd, EM_LINESCROLL, 0, 1
这里的1如果改成2可以向下滚2行,类推。改成负的可以向上滚动。
yiwei 2000-08-08
  • 打赏
  • 举报
回复
我以前写的过程,应该可以帮忙:
'--------------------------------------------------------------------
'显示彩色文字的函数
'Public Sub richShowText(ByVal Control As Object, ByVal StrS As String, ByVal Color As Long)
'--- Control 用于操作的控件名
'--- Str 输出文本内容
'--- Color 输出颜色
'--- Enter 输出是否换行
'--------------------------------------------------------------------------------------
Public Sub richShowText(ByVal Control As Object, ByVal StrS As String, Optional Color As Long = 0, Optional Enter As Boolean = True)
On Error Resume Next
Control.SelColor = Color
Control.SelText = "(" & Time & ") " & StrS
Control.UpTo vbEOF
If Enter Then Control.SelText = vbCrLf
End Sub

shines77 2000-08-08
  • 打赏
  • 举报
回复
我想textstar是不是想让RICHTEXTBOX自动往上滚屏(指满屏了以后,自动往上滚),如果是的,应该是这样实现:

'添加你的文本信息
txtDialog.Text = txtDialog.Text + vbCrLf + YourMsg

'把选择的焦点设置为文本的最后一行(实现自动滚屏)
txtDialog.SelStart = Len(txtDialog.Text)

'去掉文本后面的回车换行符,以求更加美观
If Mid(txtDialog.Text, 1, Len(vbCrLf)) = vbCrLf Then
txtDialog.Text = Mid(txtDialog.Text, Len(vbCrLf) + 1, Len(txtDialog.Text))
End If

注:txtDialog是RichTextBox控件的名字。
(以上仅供参考,如有不妥,请多多指教) 郭子

7,759

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧