文本框中光标位置的获得

2016-02-19 18:28 4 1 收藏

下面是个超简单的文本框中光标位置的获得教程,图老师小编精心挑选推荐,大家行行好,多给几个赞吧,小编吐血跪求~

【 tulaoshi.com - 编程语言 】

在很多的编辑软件中有这样一个功能,即当用户在编辑区中输入字符或者按动鼠标使得光标的位置改变时,在编辑软件下方的状态栏中就能显示出光标所在位置的行和列的值。下面就介绍如何用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

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

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

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

PrivateSubText1_MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)
  DimLineNoAsLong,ColNoAsLong

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

CallGetCaretPos(Text1.hwnd,LineNo,ColNo)
  Label1.Caption=LineNo
  Label2.Caption=ColNo
  EndSub

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

(程序)

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

->

来源:https://www.tulaoshi.com/n/20160219/1617828.html

延伸阅读
标签: 电脑入门
Word文档里面可以包含各种各种的对象,其中,有几种对象不是普通文字,比如图片、艺术字、文本框等,这些对象不是纯文本,在操作上,肯定与文本的操作有所不同! 下面,给大家介绍的这个问题是,Word里面的文本框无法删除。遇到文本框删不掉,如何才能删除呢? 针对该问题,原因出自两个方面,下面逐一为你道来。 一、文本框对象未选对 关于...
标签: Web开发
表单的文本框分为单行文本框和多行文本框,故名思义,单行文本框用于输入一些简短的信息,如:姓名、E_mail地址、口令等等;多行文本框用于输入内容较长的信息,如:用户意见、评论、留言等。只要你理解了表单的文本框参数的含义,制作接收信息的文本框是不难的,请看下面的例子。 一、一个单行文本框的例子 本例的源代码如下...
在应用程序中,有时需要用户录入一些不宜在屏幕上直接显示的内容,如用户口令或机密数据。我们已熟知,在Foxbase/Foxpro中这一功能可以用SETCONSOLEOFF命令关闭向屏幕的回显来实现。那么,在VisualBasicforWin-dows中如何做到这一点呢? 一个容易想到的方法是利用文本框的Key-Press事件,但为了处理用户对文字的编辑(如删除、插入),...
WPS文字中多个文本框相互链接的攻略   相信大家再编辑文档的时候,经常用到文本框来防止文字或图片的移动,但是也有的时候,要将文字或图片两个文本框相接连起来。下面图老师小编就为大家分享下文本框链接的操作技巧,一起来看看吧。 一、绘制文本框 先在文档中要插入文本框的位置单击鼠标,然后在菜单栏中单击插入文本框...
wps演示怎么添加文本框   1、首先我们打开wps演示,点击插入==文本框 我们可以根据自己需要,然后我们选择自己想要的类型文本框 WPS文字怎么关闭拼写检查   1、首先打开wps,选择wps文字--选项,进入设置页面或者点击下拉工具选择拼写检查 2、再设置页面选项拼写选项卡。在拼写选项卡中选择勾选掉输...

经验教程

483

收藏

98
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部