赛迪网 > IT技术 编程语言 > 文章
  IT资讯搜索
 
IT产品搜索
[程序开发][网管世界][网络安全][数据库技术]
[操作系统][嘉宾聊天·在线访谈][活动集锦]
[精彩专题][Symantec专区][订阅IT技术周刊]
[开发论坛][网管论坛][安全论坛][数据库论坛]
[操作系统论坛][Sybase专区][IBM dW技术专区]
[病毒求助][病毒与漏洞播报][文档·源码下载]

使用SendMessage函数滚动文本框控件中的内容

发布时间:2006.08.16 02:43     来源:plwww    作者:

在Visual Basic 中, 可 以 通 过 程 序 使 文 本 框 控 件 中 的 内 容 进 行 滚 动, 而 不 用 等 待 用 户 单 击 滚 动 条 控 件, 可 以 通 过 使 用Windows API 的SendMessage 函 数 将 一 个 或 多 个 滚 动 消 息 发 送 到 系 统 来 实 现 上 述 功 能。

在 文 本 框 控 件 中 滚 动 ---- 在 下 面 的 样 例 程 序 中, 连 接 到Left 命 令 按 钮 上 的 代 码 将 文 本 框 中 的 内 容 向 左 移 动 一 个 字 符 的 位 置。 当 用 户 单 击 了 文 本 框 控 件 上 的 水 平 滚 动 条 时, 该 消 息 被 发 送 到 窗 口。 然 而, 在 这 个 程 序 中, 是 在 用 户 单 击 命 令 按 钮 时 发 送 该 消 息。

---- 要 控 制 滚 动 行 为 的 方 向, 必 须 告 诉SendMessage 函 数 将 一 个WM_HSCROLL 消 息 发 送 到 文 本 框 控 件 中, 并 在wParam 参 数 中 指 定 方 向 参 数。 下 面 是 可 以 在wParam 参 数 中 指 定 的 有 效 设 置。

---- SB_LEFT 往 左 边 移 动 较 多 部 分
---- SB_RIGHT 往 右 边 移 动 较 多 部 分
---- SB_LINELEFT 往 左 边 移 动 一 个 单 元
---- SB_LINERIGHT 往 右 边 移 动 一 个 单 元

---- 可 见, 要 将 文 本 框 中 的 文 本 向 左 移 动 一 个 字 符, 可 以 将wParam 参 数 设 置 为SB_LINELEFT; 要 将 文 本 框 中 的 内 容 向 右 移 动 一 个 字 符, 则 将wParam 参 数 设 置 为SB_LINERIGHT, 等 等。

样 例 程 序 ---- 该 程 序 显 示 了 如 何 使 用SendMessage 函 数 来 滚 动 文 本 框 控 件 中 的 内 容。

---- 1. 在Visual Basic 中 开 始 一 个 新 的 工 程, 采 用 缺 省 的 方 法 建 立Form1。
---- 2. 将 如 下 常 量 和 声 明 语 句 添 加 到Form1 的 通 用 声 明 部 分 中( 注 意 该 声 明 语 句 需 要 书 写 在 一 行 内):
---- Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Integer, ByVal lParam As Long) As Long
---- Const SB_LINERIGHT = 1
---- Const SB_LINELEFT = 0
---- Const WM_HSCROLL = &H114

---- 3. 在Form1 上 添 加 一 个 文 本 框 控 件, 采 用 缺 省 的 方 法 建 立Text1。 将 其MultiLine 属 性 设 置 为True,ScroolBars 属 性 设 置 为3-Both。

---- 4. 在Form1 上 添 加 一 个 命 令 按 钮 控 件, 采 用 缺 省 的 方 法 建 立Command1。
---- 将 其Caption 属 性 设 置 为“ 左”。

---- 5. 将 如 下 代 码 添 加 到Command1 的 单 击 事 件 中:


Private Sub Command1_Click()
    Dim X As Long
    X = SendMessage(Text1.hwnd, WM_HSCROLL,
        SB_LINELEFT, ByVal 0&)
End Sub

---- 6. 在Form1 上 添 加 第 二 个 命 令 按 钮 控 件, 采 用 缺 省 的 方 法 建 立Command2。
---- 将 其Caption 属 性 设 置 为“ 右”。

---- 7. 将 如 下 代 码 添 加 到Command2 的 单 击 事 件 中:


Private Sub Command2_Click()
    Dim X As Long
    X = SendMessage(Text1.hwnd, WM_HSCROLL,
        SB_LINERIGHT, ByVal 0&)
End Sub

---- 按 下F5 键 来 执 行 该 程 序。 在 文 本 框 控 件 中 键 入 一 些 文 本, 如 图1。 单 击 左 命 令 按 钮, 文 本 将 被 往 左 滚 动 一 个 字 符, 如 图2。 单 击 右 命 令 按 钮, 文 本 将 被 往 右 滚 动 一 个 字 符 的 位 置, 如 图3。



[ 发表评论 ] 字体[  ] [ 打印 ] [ 进入博客 ] [ 进入论坛 ]  [ 推荐给朋友 ]
  相关文章
· Inet控件中上载的路径、文件名中出现空格的解 (08-02) · VB调用C程序的方法—动态链接库法 (05-28)
· VB编程的一些心得 (07-13) · 使用VB实现Excel自动获取外部数据 (11-28)
· 用VB编写简单的程序来清空文档菜单 (08-17) · 如 何 使 窗 口 透 明 (08-04)
· 如何在VB5.0中简单安全地使用多线程 (09-04) · 获 得 位 图 文 件 的 信 息 (04-22)
· attention :: 怎 样 打 开 或 关 闭 CD-ROM (11-07) · 如 何 用 API 播 放 CD (10-10)
  客户需求反馈表
* 姓  名:
更多资料  了解方案  认识厂商
* 单位名称:
* 联系电话:
* 电子邮件:
  赛迪推荐  
  手机·资费 ·新品·导购·评测·手机资费·宽带
手机搜索  诺基亚 N73 MOTO Z6
  IT产品 ·笔记本·台式机·服务器·打印·投影
IT产品搜索 
  IT技术 ·开发·网管·安全·数据库·操作系统
  信息化 ·热点·专题·访谈·周刊·方案案例
[政务][电信][金融][农业][制造业][中小企业]
[CIO][ERP][协同][IT管理][中间件][电子商务]
[政策][地方][专家][评估][辞典][博客][社区]
· 专题:一路畅通构想曲——让出行不再遭遇堵车
· CIO工作亲历:企业ERP选型不能忽视"选人关"
· 综述:信息化建设给中国监狱带来的各种变化
· 金融业风险管理和法规遵从有五点需考虑的因素
· 保险业CIO关注:该如何建立统一高效的CRM体系
· 调查显示:多数CIO对IT规划仍存在困惑和误解
  博客·论坛 ·曾剑秋·项立刚·Java学习·网管