首  页
站长信箱
868搜索
网站登录
免费计数器
免费留言本
IP来源查询
网站技术教程
网站流量统计
文章探索:   分类:    关键字:  
    什么?你还在找兼职?上兼客吧,现在兼客吧平台太火了,知名度和诚信度也很高,注册就送0.5元现金,满3元就能提现,马上到账了!最低3元就能提现,大家可以注册下试试!注册地址:http://www.jiankeba.com/computeryc1688
  + 栏目导航
  + 相关文章
文本框中光标位置的获得
用VB导入导出你的IE收藏夹
VB应用程序访问SQL Server方法..
VB访问SQL Server数据库技术全..
自动上网抓数据的机器人
自己的IE——用VB制作浏览器
VB中如何保存Webbrowser中的整..
在VB中该如何控制其它程序的弹..
保存webbrowser中的HTML内容
破译动网验证码的简单方法
轻松获取QQ密码
VB.NET获取硬盘序列号的方法
WEBBROWSER 技巧一(收藏)
VB自动登陆网络站点详解(二)..
获取webbrowser控件网页的源码
WebBrowser控件说明
关于用VB做更漂亮的窗体的思..
VB中访问存储过程的几种办法
VB6中改变屏幕的分辨率和刷新频..
VB编写一个能显示百分比的自定..
公农历转换VB类
VB.NET窗口渐淡关闭
使用VB实现邮箱自动注册(二)..
VB.NET轻松实现任务栏程序
VB.NET启动外部程序
利用vb实现图片上传
VB实现局域网内的文件传输
VB 一个Function传回多个值
在VB中实现多线程
VB 手机号码编码程序

技术教程 -> VB教程 ->  
文本框中光标位置的获得
来源:动态网制作指南   人气:4576   录入时间:2006/9/15


    在很多的编辑软件中有这样一个功能,即当用户在编辑区中输入字符或者按动鼠标使得光标的位置改变时,在编辑软件下方的状态栏中就能显示出光标所在位置的行和列的值。下面就介绍如何用VB编程实现在文本框中的这一功能。
     首先,在Form中添加一个文本框(TextBox),将其MultiLine属性设置为True,以便输入多行文本;再在Form中添加两个标题栏(Label),以便显示光标位置;然后,在Form的代码窗口中添加程序中的代码。
   
   OptionExplici
   ConstEM_GETSEL=&HB0
   ConstEM_LINEFROMCHAR=&HC9
   ConstEM_LINEINDEX=&HBB
   
   PrivateDeclareFunctionSendMessageLib"user32"Alias"SendMessageA"(ByValhwndAsLong,ByValwMsgAsLong,ByValwParamAsLong,lParamAsAny)AsLong
   
   PublicSubGetCaretPos(ByValTextHwndAsLong,LineNoAsLong,ColNoAsLong)
   
   DimIAsLong,jAsLong
   DimlParamAsLong,wParamAsLong
   DimkAsLong
   
   '首先向文本框传递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
   EndSub
   
   PrivateSubForm_Load()
   DimLineNoAsLong,ColNoAsLong
   
   CallGetCaretPos(Text1.hwnd,LineNo,ColNo)
   Label1.Caption=LineNo
   Label2.Caption=ColNo
   EndSub
   
   PrivateSubForm_Resize()
   Text1.Width=Me.ScaleWidth
   EndSub
   
   PrivateSubText1_KeyUp(KeyCodeAsInteger,ShiftAsInteger)
   DimLineNoAsLong,ColNoAsLong
   
   CallGetCaretPos(Text1.hwnd,LineNo,ColNo)
   Label1.Caption=LineNo
   Label2.Caption=ColNo
   EndSub
   
   PrivateSubText1_MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)
   DimLineNoAsLong,ColNoAsLong
   
   CallGetCaretPos(Text1.hwnd,LineNo,ColNo)
   Label1.Caption=LineNo
   Label2.Caption=ColNo
   EndSub
   
   (程序)
   
     运行上面的程序,在TextBox中输入字符或者按控制键来移动光标时,你可以看到屏幕下面的Label中就能显示出的光标所在的位置。以上程序在Win95,VB5.0下运行通过。
   
   



| 网站转让 | 站长信箱 | 网站登录 | 技术教程 | 免费计数器 | 免费留言本 | 868流量统计 | 好帮手网站营销 |
地址:广东省阳江市  联系电话:13725641179 杨先生
Copyright 2004-2019 868资源网- 版权所有    粤ICP备05007330号