文本框中光标位置的获得

yu860919

yu860919

2016-02-19 18:28

下面是个超简单的文本框中光标位置的获得教程,图老师小编精心挑选推荐,大家行行好,多给几个赞吧,小编吐血跪求~
在很多的编辑软件中有这样一个功能,即当用户在编辑区中输入字符或者按动鼠标使得光标的位置改变时,在编辑软件下方的状态栏中就能显示出光标所在位置的行和列的值。下面就介绍如何用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

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

'再向文本框传递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://m.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://m.tulaoshi.com/bianchengyuyan/)

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

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

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

(程序)

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

->

展开更多 50%)
分享

猜你喜欢

文本框中光标位置的获得

编程语言 网络编程
文本框中光标位置的获得

递归清空窗体上所有文本框,下拉框中的文本

编程语言 网络编程
递归清空窗体上所有文本框,下拉框中的文本

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

文本框栏目介绍

Web开发
文本框栏目介绍

区分只读文本框和普通文本框的背景色

电脑网络
区分只读文本框和普通文本框的背景色

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

WPS文字让文本框中的文字随文本框旋转来显示更佳的效果

电脑应用 计算机应用技术
WPS文字让文本框中的文字随文本框旋转来显示更佳的效果

JavaScript在ASP中实现掩码文本框

Web开发
JavaScript在ASP中实现掩码文本框

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

VisualBasic制作透明的表单(Form)

VisualBasic制作透明的表单(Form)

如何去掉Windows7系统视频加速

如何去掉Windows7系统视频加速
下拉加载更多内容 ↓