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

文本框中光标位置的获得-VB资料

HTML文档下载 WORD文档下载 PDF文档下载
文本框中光标位置的获得-VB资料
作者:陈锐
在很多的编辑软件中有这样一个功能,即当用户在编辑区中输入字符或者按动鼠标使得光标的位置改变时,在编辑软件下方的状态栏中就能显示出光标所在位置的行和列的值。下面就介绍如何用VB编程实现在文本框中的这一功能。
  首先,在Form中添加一个文本框(TextBox),将其MultiLine属性设置为True,以便输入多行文本;再在Form中添加两个标题栏(Label),以便显示光标位置;然后,在Form的代码窗口中添加程序中的代码。

Option Explici
Const EM_GETSEL = &HB0
Const EM_LINEFROMCHAR = &HC9
Const EM_LINEINDEX = &HBB

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

Public Sub GetCaretPos(ByVal TextHwnd As Long, LineNo As Long, ColNo As Long)

Dim I As Long, j As Long
Dim lParam As Long, wParam As Long
Dim k As Long

'首先向文本框传递EM_GETSEL消息以获取从起始位置到
'光标所在位置的字符数

I = SendMessage(TextHwnd, EM_GETSEL, wParam, lParam)
j = I / 2 ^ 16

'再向文本框传递EM_LINEFROMCHAR消息根据获得的字符
'数确定光标以获取所在行数

LineNo = SendMessage(TextHwnd, EM_LINEFROMCHAR, j, 0)
LineNo = LineNo + 1

'向文本框传递EM_LINEINDEX消息以获取所在列数

k = SendMessage(TextHwnd, EM_LINEINDEX, -1, 0)
ColNo = j - k + 1
End Sub

Private Sub Form_Load()
Dim LineNo As Long, ColNo As Long

Call GetCaretPos(Text1.hwnd, LineNo, ColNo)
Label1.Caption = LineNo
Label2.Caption = ColNo
End Sub

Private Sub Form_Resize()
Text1.Width = Me.ScaleWidth
End Sub

Private Sub Text1_KeyUp(KeyCode As Integer, Shift As Integer)
Dim LineNo As Long, ColNo As Long

Call GetCaretPos(Text1.hwnd, LineNo, ColNo)
Label1.Caption = LineNo
Label2.Caption = ColNo
End Sub

Private Sub Text1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim LineNo As Long, ColNo As Long

Call GetCaretPos(Text1.hwnd, LineNo, ColNo)
Label1.Caption = LineNo
Label2.Caption = ColNo
End Sub

(程序)

  运行上面的程序,在TextBox中输入字符或者按控制键来移动光标时,你可以看到屏幕下面的Label中就能显示出的光标所在的位置。以上程序在Win 95,VB 5.0下运行通过。

Camera360宣布完成1800万美元B轮融资 利用ZK Ajax框架 高效扩展Web App Web开发者需养成的8个好习惯 GitHub工程师专访:奶昔+海象+游泳池=开源 Paymill发布移动SDK,实现应用内直接支付 免费到付费:全球第二开源Web Server Nginx“堕入”商业化 乐视发布新版智能电视操作系统LetvUI 2.3—Schnauzer 进步还是灾难的开始?科学家首次通过互联网实现“心灵感应” 叫板Apple TV 谷歌发布Chromecast的iOS应用 性能提升100倍的秘密武器:一行SQL代码的妙用 60个开发者不容错过的免费资源库 专门针对初学者的Node.js教程 初创公司Parse.ly:1年内捕获1.6亿独立访问用户,收入增5倍 融资新方式:用未来10年收入的6%融资10万美元 小米手机-HAXLR8on:创客32小时全纪实 图文:看苹果下一代iPhone细节 能吸引你购买吗? [开源推荐]Intention.js:通过HTML进行响应式开发 Android副总裁Hugo Barra将加盟小米 三星将召开首届开发者大会 推新SDK和S Pen 15个步骤创立技术公司,并收获千万用户(三) H3Cloud:为企业提供最优化IaaS方案 VMware、红帽对决云管理平台 大数据辅助决策,构建智慧城市 所见即所得:四款免编程移动游戏开发引擎推荐 PaaS乱局:Container的新机遇 IDC再度下调2013年全球PC销量预期 平板电脑中枪 Waze联合创始人做FeeX 用众包方式增加银行服务透明度 Ripple CTO Stefan Thomas:Bitcoin与未来支付应用开发 第二届Coding For Fun编程马拉松实时快报→→ 数字化你的脸:14个智能眼镜开发平台 Unite2013开发者大会:Unity新增多项重磅革新 哪儿有这样的软件? 电脑游戏与电子游戏 哪位有CRC-CCITT的表格,计算法就不必了 电子游戏与电脑游戏 如何用ASE12.5构建ODBC数据源并用ASP连接调用它? 关于c#版csdn助手的数据连接问题 有没有点击表头排序的listview控件? 我不会了(EDIT BOX问题),在线等 Delphi 用VB做数据库,同时保证远程SQL SERVER和本地ACCEE的同时更新,当远程连接不通时应该怎样做才能在本地顺利运行,而网络通畅时又能保证数 fopen与_open什么区别? 谁能推荐一个专注于编程、高手林立的的linux论坛? 指针???????? 请教在座各位sql server高手一个关于bcp命令的问题 奇怪的多线程与CListCtrl的问题! 特急!~~~!!寻求帮助! 请问vb里面用菜单编辑器作的菜单,怎么加图标啊? 男女关系的33个妙喻(转) 那位高手知道怎样绑定data grid 和 sql server 中的表 急 關於Ultra Edit編輯Java try! 有用C#做数据库编程的朋友给点经验 wonderful ASP 请问,知道对方IP地址(对方是98 有共亨之类的)如何能读写的对方的文件 关于ram、rm文件: 请问各位大虾,两个日期相减应该怎么做呀?比如2002年6月20日减去2001年10月15日 还很奇怪:我的笔记本的网卡物理地址(physical address)是:00-00-00-00-00-00 關於Ultra Edit 关于目录共享的问题>>>>>>>>>>>>>>>>> 菜鸟的第3个问题 :( 请问高手内存分配的问题? 有没有方法使含有JAVA APPLET的网页下载到客户端后,可以脱离网页独立运行! 有关事务的范围 PE文件资料 特急!寻求帮助!课程设计帮忙做一下! 如何在c语言中嵌套汇编语言,我用的是turbo c2.0!!在线等候,快快 哪里可以下到有关Visual C#.net的比较好的书籍? 不用循环能把数据一次过传递给一个数组变量 怎样在一个User Control上显示MS Graph图表控件 我的浏览器不支持Javascript,我该怎么? 请问~~有那位知道virtual pc的注册码!要最新版本的哪个!谢谢~` 紧急求救!!!怎么屏蔽TextBox的右键菜单。急急急!!! 高分悬赏!!! 请教DirectShow的使用。 求助:如何准确定位插入符? SQL语句中如何设立关系 怎么才能让一个应用程序的图标在任务栏的右边出现呢????? 一个初学者的问题,请不吝赐教! 问题!!!! 一个初学者的问题,请不吝赐教! 请问,我想要响应鼠标右键消息,在CMainFrame中,但奇怪??? 判断对错 把4米长的木头平均截成5段,每段是全长的5分之4 () 求一篇忠诚感恩奉献的作文,800——1000字左右!(杨克 杨克 级姐 级姐) 以我的压岁钱为题写一篇作文 打字员打一份文稿,已打了30%,再打1400个字,就可打完,这份文稿多少字 李新比王红高10厘米,如果李新的身高为10厘米,则王红的身高是多少厘米? 关于同性恋的演讲稿因为语文课之前要有三分钟的演讲,所以我想谈谈同性恋的问题.而且想在这之中提到刘著的事儿(我支持刘著).总体讲,我的观念是赞同的.恩最好在星期二之前. 关于小学即将离别的文章?要是离别前不舍得分别的 小红看一本书,第一天读了全书的一半多3页,第二天读了剩下的一半少三页,第三天完余下的48页共几页 英语作文,演讲稿,作文:演讲稿,描述身边人的低碳生活方式.提示:骑单车上班步行上学节水电搞绿化,吃绿色食品少吃肉.高二水平…… 小学送别的作文 姐姐与弟弟四年后的年龄和是32岁,弟弟今年的年龄等于两人的年龄差,姐弟二人今年各是多少岁?不可是方程 今年姐姐的年龄为弟弟的2倍,4年前姐姐的年龄是弟弟的3倍,则今年姐姐与弟弟年龄和是多少?是否可以只设一个未知数 小学离别作文题记就是写六年级离别的作文的题记,不要超过50字 今年姐姐的年龄是弟弟的1.25倍,四年后,姐姐的年龄是弟弟的1.2倍,今年姐弟俩各 姐姐现在的年龄是弟弟当年年龄的4倍,姐姐当年的年龄与弟弟现在的年龄相同,姐姐与弟弟当年的年龄和为26岁,则弟弟现在的年龄是几. 小学六年最感人离别作文 《学会感恩》征文600——1000字, 姐姐5年前的年龄是弟弟年龄的2倍,姐姐今年的年龄是弟弟的1.5倍,那么姐姐今年的年龄是 小学的期末分别作文 学会感恩【作文】(1000字)急~~~~~~~急用~~~~ 求今年国庆节1000字作文 祖国的光荣史格式如:2008年北京奥运会把年代说好最少说7个 淘气的身高是135厘米,笑笑的身高比淘淘高1/9,笑笑的身高是多少厘米? 知道母亲或父亲的身份证号怎样能知道孩子的那? 给五个祖国的光辉历史,明天交, 淘气身高100厘米,笑笑身120厘米,笑笑的身高是淘气的百分之几 小明的爸爸今年38岁 他的身份证号是452739x x x x 08202711 请问7至10位上的数字是多少?快 急( ⊙ o ⊙快 急( ⊙ o ⊙ )啊! 要过程(⊙o⊙)哦 祖国的声音 祖国的光辉历史 甲乙学生的身高大约都是1.7x10的二次方,但甲学生比乙学生高九厘米,为什么 小明看一本书,第一天看了全书的五分之一,第二天看了24页,还剩72页没有看.小明第一天看了多少页? 描写朋友之间分别的作文, 我国古代的《四书五经》包括哪四书,哪五经? 小莹对小亮说咱俩的身高都是1.6米,小亮说我比你高九厘米,他们俩说的话有矛盾吗 假设你是星光中学的李华,将参加主题为The Important of Physcal Exercise for Student 的英文演讲.假设你是星光中学的李华,将参加主题为The Important of Physcal Exercise for Student 的英文演讲.请撰写一份演讲 中国古代“四书五经”中的“四书”和“五经”分别是指什么?四书是指:《大学》《中庸》《论语》《孟子》!五经是指:《尚书》《礼记》《周易》《诗经》《春秋》 谁能帮我找一篇英语演讲稿,有关(性格与成功)的.最好是3分钟左右的,速速!我有急用啊.注意:有关与性格与成功的 随感日记写什么? 中国古代“四书五经”中的“四书”是指什么? 玲玲今年10岁,弟弟今年6岁,当他们姐弟俩的年龄和是40岁时,姐弟俩各有多少岁? 把一根长两米的木材平均截成五段,其中三段的长占全长的( )%. 有谁知道古代的“四书五经”是哪“四书”“五经”? 小明读一本书第一天读了24页占全书的五分之一第二天读了全书的37.5%还剩多少页没读? 如何在自己的博客中书写文章 令人骄傲的,关于祖国的三件历史事件要时间(xx年),什么事件,(如鸦片战争).3件,一句话.我现在正在做这项作业, 小明看一本书,第一天看了一半,第二天看了全书的1/4,还剩24页没看.这本书有几页?) 把一根长2米的木材平均截成五段,其中三段的长占全长的百分之几. 祖国的光荣历史50字 用勾股定理答题一个牧童想把他的马先牵到小河边去饮水,然后回家,牧童现在在A处,他家在B处,AB两地到河岸的距离分别为3km与7km,B与C两地的距离为8km,求最短路程 随笔日记一篇 500字 小华的身高是135cm,小龙的身高比小华高九分之一,小龙的身高是多少米?要列算式! 用勾股定理解一个题,谢谢某隧道的截面是一个半径为3.6米的半圆形,一辆高2.4米、宽3米的卡车能通过该隧道吗?在网上查了一下,有这问题的答案,但是都没说为什么,只是就这样解出来而已.总 把一根2米长的木材截成等长的小段,截了4次,其中的3段占全长的( )%谁来帮我? 凡卡的写的信,爷爷真的会收到吗?为什么? 急需一篇如何使用压岁钱的作文600字以上 谁能帮我写五篇随笔或日记,初二水平的,800字左右! 求十分钟左右的名人演讲视频和演讲稿(英文) 一份稿件,甲.乙合打6天完成,乙独打8天完成,甲乙的工作效率比是1:3( )判断 1、 把一根木材截成每段2米的木料,一共截了5次.原来木材全长_______米. 1+1=2?的英文演讲稿 十分钟左右 作文 我看压岁钱 一篇
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘