====关于richtextbox的奇妙问题,高手们进来讨论讨论===

tokyfeng228 2005-10-30 03:15:05
richtextbox相信大家都不陌生,将其设置为拥有垂直滚动条属性。运行!
用鼠标点一点垂直滚动条向下那个箭头,如果屏幕内容很长,自然会向下移动一点,是不是非常容易做到?
但是现在,我需要写一段代码来触发“用鼠标点垂直滚动条向下那个箭头”的效果,该怎么做呢?
请高手门来讨论讨论
...全文
177 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
northwolves 2005-10-30
  • 打赏
  • 举报
回复
'SendMessage:

Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

Const WM_VSCROLL = &H115

Private Const SB_LINEDOWN = 1

Private Const SB_LINEUP = 0

Private Const SB_PAGEDOWN = 3

Private Const SB_PAGEUP = 2

Private Const SB_ENDSCROLL = 8

Private Const SB_BOTTOM = 7

Private Const SB_TOP = 6
Private Sub Command1_Click()
SendMessage RichTextBox1.hWnd, WM_VSCROLL, SB_LINEUP, 1& 'upword 1 lines
End Sub

Private Sub Command2_Click()
SendMessage RichTextBox1.hWnd, WM_VSCROLL, SB_LINEDOWN, 1& ' downword 1 lines
End Sub

Private Sub Command3_Click()
SendMessage RichTextBox1.hWnd, WM_VSCROLL, SB_PAGEUP, 1& ' 1 pageup

End Sub

Private Sub Command4_Click()
SendMessage RichTextBox1.hWnd, WM_VSCROLL, SB_PAGEDOWN, 1& '1 pagedown

End Sub

Private Sub Command5_Click()
SendMessage RichTextBox1.hWnd, WM_VSCROLL, SB_TOP, 0& ' to top

End Sub

Private Sub Command6_Click()
SendMessage RichTextBox1.hWnd, WM_VSCROLL, SB_BOTTOM, 0& ' to bottom

End Sub

Private Sub Form_Load()
RichTextBox1.Text = Replace(String(2000, "x"), "x", "csdn")
End Sub



tokyfeng228 2005-10-30
  • 打赏
  • 举报
回复
还是不行,这样和用鼠标按一下垂直滚动条的想下箭头的效果完全不一样,我是想实现和按垂直滚动条向下箭头一样的效果
subzero 2005-10-30
  • 打赏
  • 举报
回复
EM_LINESCROLL
发送该消息可以控制textBox水平或垂直滚动。参数wParam指定水平滚动的字符数。参数lParam指定垂直滚动的
行数,定义以及调用方法如下:
Private Declare Function SendMessage Lib "user32" Alias "SendMessageW" _
(ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, _
lParam As Any) As Long

Const EM_LINESCROLL = &HB6

SendMessage Text1.hwnd, EM_LINESCROLL, 5, ByVal 1 '将Text1中的文本向下滚动1行,向右滚动5个字符
faysky2 2005-10-30
  • 打赏
  • 举报
回复
可以用SendMessage来向它发送消息,或者间接来做,让它的光标向下移动:
Private Sub Command1_Click()
RichTextBox1.SetFocus
RichTextBox1.SelStart =10!*30
End Sub
tokyfeng228 2005-10-30
  • 打赏
  • 举报
回复
Private Sub Command1_Click()
RichTextBox1.SetFocus
RichTextBox1.SelStart =10!*30
End Sub
这段代码试了没用 啊
tokyfeng228 2005-10-30
  • 打赏
  • 举报
回复
请问用sendmessage该怎么做呢?

1,451

社区成员

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

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