文本框中光标位置的获得

2016-02-19 18:28 8 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

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

PublicSubGetCaretPos(ByValTextHwndAsLong,LineNoAsLong,ColNoAsLong)

DimIAsLong,jAsLong
  DimlParamAsLong,wParamAsLong
  DimkAsLong

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

'首先向文本框传递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下运行通过。

->

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

延伸阅读
标签: Web开发
一个Ajax文本框输入提示的例子,用asp实现: 前台文件 !DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" html xmlns="http://www.w3.org/1999/xhtml" head meta http-equiv="Content-Type" content="text/html; charset=utf-8" / title文本框输入提示/title style ...
标签: 电脑入门
Word文档里面可以包含各种各种的对象,其中,有几种对象不是普通文字,比如图片、艺术字、文本框等,这些对象不是纯文本,在操作上,肯定与文本的操作有所不同! 下面,给大家介绍的这个问题是,Word里面的文本框无法删除。遇到文本框删不掉,如何才能删除呢? 针对该问题,原因出自两个方面,下面逐一为你道来。 一、文本框对象未选对 关于...
在应用程序中,有时需要用户录入一些不宜在屏幕上直接显示的内容,如用户口令或机密数据。我们已熟知,在Foxbase/Foxpro中这一功能可以用SETCONSOLEOFF命令关闭向屏幕的回显来实现。那么,在VisualBasicforWin-dows中如何做到这一点呢? 一个容易想到的方法是利用文本框的Key-Press事件,但为了处理用户对文字的编辑(如删除、插入),...
WPS文字中多个文本框相互链接的攻略   相信大家再编辑文档的时候,经常用到文本框来防止文字或图片的移动,但是也有的时候,要将文字或图片两个文本框相接连起来。下面图老师小编就为大家分享下文本框链接的操作技巧,一起来看看吧。 一、绘制文本框 先在文档中要插入文本框的位置单击鼠标,然后在菜单栏中单击插入文本框...
PowerPoint制作滚动文本框的办法   1、启动PowerPoint2013,首先,我们要插入文本框,这里,我们不能按照传统方法直接单击插入选项卡,从里面选择文本框,那样的文本框是不带有滚动条的。我们点击开发工具选项卡,然后单击文本框控件。 2、在空白页面画出文本框,调整大小,然后点击控件功能区中的属性按钮。 3、 弹...

经验教程

989

收藏

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