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

防止文本控件中的部分滚动-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消息发送给文本框,再次运行该程序,这时我们会发现,文本框的下半部分显示不出来,尽管实际上文本仍然是存储在控件中的。
在桌面上建立一个 Internet 快捷键 -VB资料 VB怎样接收电子邮件(POP3协议简介) VB怎样用VB得知系统当前是否处于internet链结状态 VB制作自己的网络搜索软件 自动更新工作站的应用程序-VB资料 自己的IE——用VB制作浏览器 VB6制作Win98风格的工具栏 VB实现窗口的弹出式菜单 用VB做个漂亮的进度条 Cool 3D 浮動按鈕的模擬作法-VB资料 VB 5.0中实现鼠标拖放 VB5.0下工具条的制作 VB5.0中基于桌面的屏幕技巧 VB5.0中实现字体闪烁效果 VB5实现窗口图像缩放、滚动技巧 VB6.0动态加载ActiveX控件漫谈 VB编程步步高-表单篇 VB编程常见问题 VB编程中如何锁定鼠标 VB创建位图菜单 VB实现按钮浮动效果 VB应用程序中的工具提示和状态显示 VB中处理长列表框项的两种方法 VB中多级下拉列表的实现 VB中防止将重复项目添加到列表框控件中 VB中实现菜单分割 VB中实现带预览的对话框 VB中实现同一窗口的多个实例及控件的动态增减 VB中阴影字体的实现 VB自定义数据结构的传输转换 Visual Basic 窗体背景花纹的实现 Textbox如何禁止它记忆以前曾经输入过的值? 我的XP的CPU经常占用90%以上,高手指点. 安装完win2000,又安装了天网防火墙,再安装SQL server 2000,快完成时启动服务警告“无法定位程序输入点” 急招深圳周边(含深圳).Net程序员 ??qustion Laney(6吨大肥猫) 快来啊^@^ 有关struts的<html:text>标签的问题!!!!!!!!!!!!!!!!!!!!!!! 为了考试挑灯夜读,遇到一个菜问题请大家帮忙! 哪位高手帮帮我!时间紧急! 关于还原精灵转储后win98不能启动的问题,请指教!~ 有几张漂亮图片,看看你的计算机是怎么累死的 求C++算法代码。 怎么实现在IE中将查找到的关键字用红色标记指示出来? 求C++算法代码。 请问哪里可以下载Numega DevPartenr Studio 测试工具 ㊣㊣ 什么也不多说了,帮忙给解决这个问题吧, 先多谢了!! ㊣㊣ 有个小小问题 寻找监测某端口的数据流量软件 都市幽灵·里面一定有宝藏 非常奇怪:为什么超链接无效? 显示异常 下个星期开始到新公司了,请大家给点经验,好吗 急!jsp+mysql,急寻blob输出方法!!! 修改记录问题 StringGrid的自画 导出 救命呀,关于XP的激活问题. 语句 请问有什么好的串口调试工具,可以模拟串口发送数据的??????? 简单问题高分相送 MessageBox.Show 方法需要什么样的名空间 使用ghost硬盘刻录硬盘怎么区分源盘和目标盘,请大虾详细说说,在线等 概念性问题(没办法,太笨了,见笑了) vf8支持动态SQL吗? 请问:如何单独安装BDE? 因为你无权连接数据库服务器?? 大家看看一个非常专业的商贸企业管理软件,要源码好商量! 如何清除Image中的图片? 数据库查询一个奇怪问题 关于记事本程序的编写??? 揭贴后的话(告诉大家你的问题解决的怎么样) 如何模拟串口发送数据 如何清除Image中的图片? 出售 .Net 自定义服务器端日历控件 *****加班熬夜何时了,辛苦知多少,小楼昨夜又东风,女友不堪回首睡梦中***** VC中使用ACCESS数据库版本的问题? 有高手来看看这个EXCEPTION是怎么回事??????? 我怎么追踪网页向服务器发送的数据 想用VB+SQL SERVER做系统,不知从何下手。 出售 C# 开发的Web服务器控件:日历 窗体登陆 柱字开头的成语?马上要 急 关于政治与经济的填空题1.人民政协的主要职能( )、( )、( )大家会哪个就答哪个,写好序号.不会的就空过去. 滕王阁序并诗是什么 寓言家克雷洛夫说过:现实是此岸,理想是彼岸,中间隔着湍急的河流,行动则是架在河上的桥梁.以上材料为题材,写一篇不少于1000字的议论文 一道高中政治填空题(经济)国有企业改革的方向是__________,这是________的基础,它的特点是________,__________,_________,__________;国有企业改革的方针是_________结合起来;另外,还要建立和健全_________制 浙江省上虞市,百官哪里可以买到荧光鞋带? 苏教版七年级上册数学测试题(有答案) 什么叫做世态炎凉、人间冷暖? 浙江省上虞市百官街道城东开发区翻译成英文 水浒传 及时雨 神行太保 黑旋风 浪里白条分别是谁 带柱的成语(越多越好) 怎样使自己尝遍人间冷暖,世态炎凉? 义勇军进行曲在当时起到了什么作用 请问带"梁"和带"柱"的成语? 政治经济学填空题试论述社会主义实行按劳分配的客观必然性? 深圳经济特区建立30年来取得重大成就的主要原因有哪些?根本原因是什么? 根据范进中举对下联,上联:三十五载梦想,一朝成真,喜极而疯,看尽世态炎凉. 某商场将一种商品降价出售.如果减去定价的10%出售可以盈利209元,如果减去定价的5%出售,亏损80元.此商品的进价是多少元?某商场将一种商品降价出售。如果减去定价的10%出售可以盈利209元, Everyone likes eating ice-cream.Di you every think __1__ where it came from?Who make the first ice-cream?__2___ knows the exact time when it began.Some people said it began __3___ of years ago.Modern(现代的) ice cream first appeared(出现) in Ita 不戚戚于贫贱不汲汲于富贵出自哪篇课文作者是谁 英国的王室有存在的必要么从历史方面回答 它的作用是什么 为什么存在 改革后为什么还延续到今天? 英语完形求解1.She is very good at dance,___everybody knows2,___is known to everybody,the moon travels round the earth once every month3.Have you seen the Titanic,____leading actor is world famous?4.He lives in a hotel,____is only five minute's 证明向量空间必定含有零向量 主父偃是什么意思 翻译 顾吾念之,强秦之所以不敢加兵于赵者,徒以吾两人在也 若向量空间含有向量a,则必定含有-a? 请介绍主父偃 假使我们不去打仗和后面的义勇军进行曲表达的相同的主题是什么? 上联为 故乡尴尬逢闰土 下联为-------于勒 英国皇室会一直存在下去吗?英国皇室威廉王子世纪婚礼又一次引起人们对君主立宪废与立的讨论有支持也有反对总体支持废除君主立宪制的人更多,那么皇室会一直存在下去吗多少年后会被 . 假使我们不去打仗 和 义勇军进行曲 二者在写法上又有什么不同? 《故乡》中造成闰土麻木的主要原因是什么? 已知c/a+b=a/b+c=b/c+a=k,则一次函数y=kx+k经过哪些象限 水浒传中宋江是谁 吴用是谁 柴进是谁 豹子头是谁 花和尚是谁 黑旋风是谁 根据图中五个汉字的不同方位,写出三个成语 上:调 下:腔 左:击 右:声 中:柱上:调 下:腔 左:击 右:声 中:柱 主父偃是谁 求…深圳经济特区成立30周年,写一篇大约400字的论文!从深圳经济特区成立的时间,30周年来的成就!地理优势!自己的的感想!及对深圳的建议!这5个方面写一篇400字的论文!十分感谢!能够有更长 曾经是那样充满生气的闰土,人到中年却活得这样麻木,悲惨的表面上的原因是 奶的物理性质有哪些? 求一篇初中地理论文,只要400字就行 “颛顼”、“帝喾”怎么读? 已知b+c分之a=a+c分之b=a+b分之c=k,则直线y=kx+2k一定经过哪几个象限已算出(a+b+c)/2(a+b+c)那么(a+b+c)≠0时,k=1/2,直线y=kx+2k的表达式为y=1/2x+1,它的图象经过一、二、三象限可是为什么当(a+b+c)=0时,(b+c)=- 含有“柱”字的成语?含有“柱”字的成语是什么啊?想了很久都没想出来也~ 奶是妈妈的好(选择)阅读答案 已知b+c分之a=a+c分之b=a+b分之c=k,且a+b+c不=0,则直线y=kx+2k-3经过哪些象限 英语翻译 为什么吹一下牛奶(选牛奶是为了看清楚),牛奶就会很规律很对称地划线划圈圈呢? 已知(b+c)/a=(a+c)/b=(a+b)/c=k则直线y=kx+2k一定经过第()()象限 至少要说出为什么别看反了 含有“柱”“梁”的成语 商场改革经营管理办法后,本月盈利比上月盈利的2倍还多12万元,又知本月盈利比上月盈利多30万元,商场改革经营管理办法后,本月盈利比上月盈利的2倍还多12万元,又知本月盈利比上月盈利多30 指出英国政治变革对世界政治民主进程产生了哪些具体影响? 狮吼虎啸 求狮吼声和虎啸声.能听就行.谢过 中国成立以来,我国交通运输业发展( ) 顾炎武说:“八股之害等于焚书,而败坏人才有甚于咸阳之郊所坑之四百六十余人也.”1.上述材料提到了古代统治者加强思想控制的哪些措施?除材料提到的外,你还 知道类似的措施有哪些?2.你 “有的声音洪大,听起来如虎啸狮吼.”这句话让我联想到什么成语?(至少两个) . 远洋运输业的程租、期租、和航空运输业的湿租业务,都是什么?来自税法 二战后,美国除了侵略朝鲜外,还发动了哪些战争? 80克月饼有多大 帝喾是不是帝尧的父亲呀 材料一:明朝小说《醒世恒言》里,描写了施复夫妇发家致富的故事.施复夫妇住在苏州盛泽镇,拥有一台织机,还养了几筐蚕,靠缫丝织绸过日子.他们织出的绸缎光彩润泽,成了市场上的抢手货,人 报告称美国一年有500名少年儿童因枪美国现实版越狱:4囚犯通过浴室天花板日本小学生制成长33.9米鱼卷 打破韩总理发表国民谈话 将彻查国情院干涉日东电职员因短信骚扰女性被捕 称为吸美现实版越狱:4囚犯通过浴室天花板通窃听乱了盟友军心 是友是敌难下定论LG正式发布弯曲屏幕手机 自称后盖划北京再陷雾霾空气达六级严重污染 明日义乌连发两起命案 一人炸死一人被捅死世界最高人举行婚礼 夫妻身高相差77安倍宣称福岛污水泄漏得到控制 逾8成美国网络销售辱华面具与服饰 迎接万圣美国最新研究称分析人类口腔细菌可知其日本:转基因食品进口大国央视曝中国富豪相亲会内幕 爱钱美女惨北京中心城区今日空气达6级严重污染 哥伦比亚反政府武装释放一名美国人质第五届全球化时代犯罪与刑法论坛在北京日本拟引进上百架美国无人机“监视”钓日媒:安倍访土耳其将游说土方勿购买中草兴牧兴百业兴我区禁毒宣传教育成效明显拉萨市老年艺术团获国家级金奖让利于民 为惠“埋单”在“深水区”破浪前行发挥侨务资源优势 服务西藏发展稳定驶入发展“快车道”外交部:向中央和中央纪委汇报党风廉政西藏自治区纪委:对违纪违法案件要坚决世遗“丝路”起始段的城、门、关、道钱塘江流域干流超警戒水位 浙启动防汛广东湛江24名医疗骨干代表国家执行援中国国侨办主任裘援平考察中国新闻社西王文元遗体火化 习近平张德江俞正声刘你能做个容器正好装130个球吗 快来大陆女游客脱口说炸弹 航警送办传乘客携刀 台铁在厕所找到锉刀朱立伦:市政会延续 愈做愈好惊悚车祸场面!休旅车遭撞翻滚6圈半才西门钉淫窟在警局旁!百名辣女阻街任君新北市长在野参选人首场电视政见会登场
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘