说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

防止文本控件中的部分滚动-VB资料

HTML文档下载 WORD文档下载 PDF文档下载
防止文本控件中的部分滚动-VB资料
谭 翁
Windows API的SendMessage函数可以用来向VisualBasic控件中发送消息,例如向文本框控件上发送消息。本文介绍如何利用该函数防止文本框控件中的部分文本滚动,即该控件中不能滚动的部分不能被用户看见。
发送消息到文本框控件
Visual Basic中的文本框控件就是一个最小化的字处理程序。当该文本控件的MultiLine属性被设置为True的时候,则文本可以自动换行;当在文本框控件中键入了许多文本时,控件中的文本会向上滚动。这时文本就变得看不到了,但这些文本实际上仍然在控件中——它们并没有被删除。
Windows API的SendMessage函数可以用来防止文本框控件中的文本滚动因而超出我们的视线。当创建该文本框控件时,它的客户区域格式化为一个矩形(该区域就是键入文本的地方),可以给该控件发送EM_SETRECTNP消息,对该矩形区域进行限制,以在文本框的客户区域中指定一个特定区域。
在下面的样例程序中,我们希望文本控件的后一半原封不动地保持完整,即不希望文本滚动而超出视线。可以从文本框控件的Height属性中提取出它的高度,并将该值除以2,得到该文本框控件后一半的坐标。然后将该结果传递给SendMessage函数,告诉EM_SETRECTNP防止该矩形区域滚动。
有些程序员可能会希望使用EM_SETRECT消息代替EM_SETRECTNP消息。但是,使用EM_SETRECT消息会停止Windows对该格式化矩形区域中的文本的重新绘制,导致文本框控件中的文本会看不到。
 
样例程序
该程序显示了如何临时冻结一个文本框控件中的特定部分,该部分包含的文本不能滚动,因而不会超出视线之外。
1.在VisualBasic中开始一个新的工程,采用缺省的方法建立Form1。
2.将如下常量和声明语句添加到Form1的通用声明部分中(注意该声明语句需要书写在一行内):
Private Declare Function SendMessage Lib "User"
(ByVal hWnd As Integer, ByVal wMsg As Integer,
ByVal wParam As Integer, lParam As Any) As Long
Const WM_USER = &H400
Const EM_SETRECTNP = WM_USER + 4
Const EM_SETRECT = WM_USER + 3
对于32位环境下使用Visual Basic5.0的用户,需要将如下声明语句添加到Form1的通用声明部分中:
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 EM_SETRECTNP = &HB4
Const EM_SETRECT = &HB3
3.将如下代码添加到Form1的Form_Load事件中:
Private Sub Form_Load()
Text1.Text = " 这 是 我 们 希 望 显 示 出 来 的 第 一 段"
Text1.Text = Text1.Text & " 它 位 于 文 本 框 控 件 中"
Text1.Text = Text1.Text & Chr$(13) & Chr$(10) & " 这 是 第 二 段, 我 们"
Text1.Text = Text1.Text & " 希 望 将 之 冻 结 以 使 文 本 不 能 滚 动 "
End Sub
4. 将如下代码添加到Form1的Click事件中:
Private Sub Form_Click()
Dim R As RECT
Dim X As Long
ScaleMode = 3
R.Left = 0
R.Top = 0
R.Right = Text1.Width
R.Bottom = Text1.Height / 2
X = SendMessage(Text1.hWnd, EM_SETRECTNP, 0, R)
End Sub
5.创建一个新的模块。采用缺省的方法建立Module1.Bas。
6.将如下TYPE结构添加到Module1.Bas中:
Type RECT
Left As Integer
Top As Integer
Right As Integer
Bottom As Integer
End Type
对于32位环境下使用Visual Basic 5.0的用户,需要将如下TYPE结构添加到Module1.Bas中:
Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
7.在Form1上添加一个文本框控件,采用缺省的方法建立Text1,将其MultiLine属性设置为True。
按下F5来执行该程序,我们可以看到文本框显示在Form1上。在窗体上单击一次鼠标,将新的文本键入到该文本框控件中。这时我们可以注意到,当我们在文本框控件的开头处键入新的文本时,在文本框控件下半部分的文本不会滚动。
如果我们将EM_SETRECT消息替代EM_SETRECTNP消息发送给文本框,再次运行该程序,这时我们会发现,文本框的下半部分显示不出来,尽管实际上文本仍然是存储在控件中的。
Android UI开发专题(三) 各种Drawable 提高Android开发效率-Eclipse快捷键大全 Android UI开发专题(二) 之绘图基础 Android UI开发专题(一) 之界面设计 Only the original thread that created a view hierarchy can touch its views的相关 Android上的Back键事件捕获 Android蓝牙API之BluetoothSocket类(2) Android蓝牙API之BluetoothSocket类 Android蓝牙API之BluetoothAdapter类(1) Android蓝牙API之BluetoothAdapter类(2) AndroidManifest.xml文件剖析 (三) AndroidManifest.xml文件剖析 (二) AndroidManifest.xml文件剖析 (一) MOTODEV初体验,高效Android开发工具 Simple让BASIC语言编写Android程序 MOTODev试用报告- Android开发效率之源 安装MOTODEV Studio for Android版方法 Android开发工具-motoDEV studio介绍 Android过后Chrome OS又是如何开发? Android安全模型导致开发时功能受限 Android导出一个JAR库 APK汉化原理及方法 APK文件格式分析,Android反编译入门(一) ApiDemos中的Android Widget例子解析 APK签名导出向导 - Use the Export Wizard 剖析Android自带Widget - Music播放器 剖析Android自带Widget - Clock指针钟表 C#取得Excel工作簿工作表名称 C#中用Automation自动化方式对Excel的操作 VB如何打开或保存为有密码保护的Excel sheets工作表 VB在Excel表格文件中搜索指定内容 还是这两本书110分 急救:主板CMOS故障!! 有谁知道在JBuilder中插入一副图片应该用哪个Compoent 加急问题??关于.properties!!在线等, Win2K下控制台程序处于选定状态,如何恢复? 窗口自动关闭 救命啊!严重问题!怎么老是显示E2316:TempSongList::PlayFirstSong()is not a member of 'TempSongList'? 关一个小笨蛋生存的困惑,还请各位GG、JJ一定要帮帮忙呀~~~~ Interface中添加方法的问题,请高手指教!再线讨论!! c#访问FOXPOR数据库问题 WORD求源代码加分之四 怎么样获得一个 EDIT 的 句柄 ?? 请问嵌入网页中的Activex如何调整自身的大小?请各位高手帮忙!谢谢! Oracle和SQLSERVER中5用户10用户到底是什么意思? 我身边的一个PLMM说,她想找一个成熟、幽默、聪明的程序员。 一个局域网内访问odbc数据源的问题 对女孩子不能太热情了! 一个easy 的question 请精通C#与VB.net的大虾帮忙翻译一下 在异地拷贝一个文件(200M以上)到本地,如何做 《C++程序语言》(特别版)怎么样 getContentPane()是什么意思? 高手请进!嵌入网页中的Activex如何获取加载它的浏览器对象?谢谢! i am 24 year old ,but i have nothing 请问哪里有exchange2000 server??? XP,IE 6 SP1,安装JRE 1.4无数次,<APPLET>标签下的东西仍不能看,<OBJECT>可以,为什么??!!求救!! Socket发送接收的问题! c++ builder6的盘 mapx 问题? partition magic 8.0 一个既包含静态图象又包含视频播放的视频,怎样把它抓屏下来??? SOS!!!一个有关全文检索,以及文档的数据库存储的问题,急急!各位大侠出招啊,在线等候 请问如何在程序中将CEdit控件设为只读或取消只读, Java认证问题 请问你们认为哪种操作系统更好用和稳定? 关于mfc dll wizard 做出来的dll 的内存泄漏问题!! vc++与C++Builder有何本质的区别? 能否做个象Media Play的ACTIVEX查件,既有动画窗口,又有按钮??? 高手,关于数据库转换的问题 给分:谁有关于“从网卡取得数据”方面的论文 大家好,有一个关于拔号、专线系统的IP地址问题 SAX的问题 表单传递后,如何判断用户是否填入了内容的? 请教 请教各位大侠 各位好,小弟初学Oracle,请各位指点哪有相关电子书下载,多谢! 辞职,不知是对是错?(第一次散分,请版主高台贵手) 关于vb在com编程的几个问题! 请教如何用C#取网卡MAC的地址?? 那位大侠做过数据加密解密的程序呀! 询问一个关于组件安装的问题 苍耳靠什么传播种子长一点 染色质的四级结构为什么是染色单体而不是染色体? 能量的定义是什么?既然E=mc^2,那么是不是物质可以完全转化为能量而消失?物质转化为能量,那组成物质的分子,原子,原子核,电子跑到哪里去了呢? E=MC平方这个结论怎么来的大神们帮帮忙能量=质量X光速的平方 是怎么得来的 具体点的 如果是公式更好 染色体,染色质,姐妹染色体,姐妹染色单体的图各是怎样的?染色体,染色质,姐妹染色体,姐妹染色单体的图,要清晰的,最好是比例相同的,一目了然的,我脑子不好使.不然早会了!如果把染色体看作 税收对市场经济的作用税收对社会主义市场经济发展的作用 下水管可能被小木块堵住了,有什么不切开管道的方法疏通吗堵在S弯处,而且已经看不到 染色体,染色质,染色单体有什么区别啊那染色单体与姐妹染色体有什么区别啊 物体的静止能量是E=mc^2.它包括物体的内能吗?为什么? 请问:苍耳靠什么传播种子?豌豆靠什么传播种子?还有什么靠什么传播种子? 请问;铜氨溶液分别和乙醇钠,葡萄糖,溴水发生反应吗 如果能 那反应方程式是什么 简单商品经济条件下,使经济危机具有形式上的可能性的货币职能是?A,价值尺度 B 流通手段 C 贮藏手段 D 支付手段 E 世界货币答案是BD.谁知道原因,麻烦解释下吧. 太阳对地球引力做负功是什么? 把固体二氧化锰,和一种白色的粉末B混合产生氧气 计算反物质湮灭的能量能用E=mc^2吗? 在一定温度和压强下,50mlA2气体与75mlB2气体化合生成50ml气体化合物,则该化合物化学式为物质的量那块怎么求的 如右图,烧瓶内充满NH3,橡皮塞上没有胶头滴管,如何引发喷泉? 飞亚达石英手表G270怎样,求评论? 物态除了气态液态和固态,还有什么物态? 税收三性中是强制性决定无偿性,还是无偿性决定强制性?具体表述如下 税收的强制性决定税收的无偿性,而税收三性中是强制性决定无偿性,还是无偿性决定强制性?具体表述如下税收的强制性 如果所有物质都有溶解度的话,那么爱的溶解度是多少 关于地震中救命三角的问题现在网上一直都在说什么地震中救命三角的方法,不知道是真是假,希望有人能站出来说说?因为这篇文章后面写了一个自治磁铁测地震的方法,这个方法很假很假有点 飞亚达表芯动男表瑞士自动机械机芯手表 GA8466BBB用的甚么机芯 高一化学2跪求解析.石墨有没有自由移动的电子 导电性不知道怎么判断 为什么人类会受地球引力控制? 飞亚达石英表防水30米是指什么意思 物质的第六态是辐射场态还是费米子凝聚态?请具体点 胶体中加电解质、加热、搅拌,为什么会聚沉?要原因? E=mc^2 能量我不明白把物体质量带进公式得到一个超级大的能量有什么作用?这些能量能做什么? 制备细胞膜为什么不用原核细胞 胶体聚沉中加电解质是化学反应胶体粒子会吸附离子是化学反应吗? E=mc^2当E为运动时的能量时当E为运动时的能量时m是运动质量还是静止质量 飞亚达和天梭哪个品牌更好呢?同等价位谁更好些啊?听说飞亚达的机芯都是进口的,还不怎么好.天梭本身就是瑞士产的.请懂行的给详细说说.哪个更好些呢?哪款比较经典呢,价位在四千左右的 栾树有几种呢?种植栾树将来的发展趋势如何? E=mc^2的能量可以是任何能量吗? 飞亚达手表好还是天梭手表好?RT,飞亚达手表好还是天梭手表好.. 哪里有栾树哪里有栾树苗 E=mc^2 能量岂不是很大?金由235 这个代入公式没问题 这个我不怀疑毕竟他弄死了很多人 但是其他材料 我就怀疑了 比如木头 代入这个公式 我自己也觉得很可笑 有谁帮我解答这个难题我没懂你 天梭 飞亚达哪个好 【松子】松子的营养价值高在哪里 光的能量是E=mc^2还是E=1/2mc^2根据爱因斯坦质能方程,物质的能量应该是E=mc^2,但是光子不是没有静止质量的吗?那是不是不能通过质量来求得其能量?而且根据经典力学理论,Ek=1/2mv^2,那光速是c,它 天梭、依波、天王、飞亚达.相对来说哪个品牌的表好一些? 氯化铁溶液中是否存在少量氢氧化铁和氢氧化亚铁沉淀 钠在空气中的变化写一下方程式 24小时什么时候开始啊新季的 地震的生命三角区有哪些位置? 15.已知a和b相距20个图距单位,从杂交后代测得的重组值为19%,则两基因间的双交换值为:A.0.5% B.1% C.2% D.4%怎么算的没分了 7*24小时是多少时间 浓硫酸占到手上能否立即涂上氢氧化钙溶液?如果立即用抹布擦抹布不就变成C了? 与鬼针草、苍耳传播方式相同一个果实有四个种子的植物. a基因的片段与b基因的片段发生互换属于什么变异 水厂河中700取水管被沙石堵塞一半怎么疏通 政治理论常识有哪些具体的内容? 杂合体AbC/aBc与abc/abc测交,后代双交换型为aabbC_和A_B_cc,则其连锁基因顺序为答案是B为什么啊 我怀念朋友 扩写句子 实验室中硫酸亚铁或氯化亚铁溶液长时间放置将会有什么变化 下列各项中不属于税收作用的是( ).A.实现国家职能 B.稳定经济 C.收入再分配 D.配置资源作用4个财政收入的主要形式调节国民经济的重要手段维护国家政权保障国际社会的国家利益我想选的是 我怀念朋友.怎么扩句 高一寒假课程导学73页:氨气的喷泉实验探究操作中:为什么先挤压胶头滴管的胶头,后打开止水夹更好?氨气的喷泉实验成功的关键有(1)装置的气密性良好,为什么?如果不好,有啥影响?如果 如何检验基因在染色体上呈线性排列?A基因分离B基因交换.选哪个? 一名中国游客在泰国芭堤雅沉船事故中遇安倍对俄“温和路线”欲解领土问题 难朴槿惠说如有益半岛和平愿与金正恩会谈克里说美国将继续与埃及政府紧密合作一游船在泰国芭提雅附近沉船6死 包括一艘游船在泰国旅游城市芭提雅附近发生孙杨无证驾驶被确认 浙江体育局表示深朴槿惠说如有益半岛和平愿与金正恩会谈缅甸若开邦近海翻船数十人失踪湖南希望小学为百亿项目腾地被拆 官方习近平叮嘱土家族群众:好好干、有奔头马来西亚要求“全面解释”对其监听行为奥运冠军孙杨驾卡宴被公交车追尾 涉嫌习近平赴湘西调研扶贫攻坚习近平摘柚子:“这是技术活”第六届“汉语桥”世界中学生中文比赛闭孙杨驾车发生交通事故 涉嫌无证驾驶警“不断适应形势的变化”——国际分析人巴基斯坦塔利班任命临时首领菲律宾南部海域发生6级地震哈马斯称缴获一架以色列无人侦察机禁售散装酒和食用油引激辩俄罗斯顶级芭蕾舞团 打造巅峰版《天鹅“小鸟”来学校做客啦!盐山爱护动物从海南应大力发展精准农业央行或采取微调措施迎来最好时机保证食品安全需多国合作共推房产税征收最好先从高端下手用海南好环境吸引好老师嘉宾探讨全球信用评级体系改革为了守护受伤师生的生命资本市场治理应有新思维现在是投资海南的大好时机他山之石用现代技术发扬古法农耕精髓三沙设市两岸南海合作新契机海上丝路海南应发挥集聚集散效应18名住院伤员病情稳定威震世界的反恐尖兵海南有机农业发展概况保证食品质与量都要靠科技
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘