实现在TextBox中得知Caret所在位置

'在form中放一个textBox两个label
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 hwnd5 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
i = SendMessage(hwnd5, EM_GETSEL, wParam, lParam)
j = i / 2 ^ 16 '取得目前Caret所在前面有多少个byte
LineNo = SendMessage(hwnd5, EM_LINEFROMCHAR, j, 0) '取得前面有多少行
LineNo = LineNo + 1
k = SendMessage(hwnd5, EM_LINEINDEX, -1, 0)
'取得目前caret所在行前面有多少个byte
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 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

时间: 2024-12-07 23:31:34

实现在TextBox中得知Caret所在位置的相关文章

JTable中获取鼠标所在位置的行数

table=new JTable(cells,columnNames); table.addMouseListener(new java.awt.event.MouseAdapter() { public void mouseClicked(java.awt.event.MouseEvent e) { System.out.println("mouseClicked()"); // TODO Auto-generated // Event stub // mouseClicked()

动态获取当前屏幕中光标所在位置的颜色

动态 ////////////////////////////////////////////////////////////////////////// /// 程序:屏幕取色 /// 功能:动态获取当前屏幕中光标所在位置的颜色 /// 作者:黎波 /// 网名:upto(阿球) /// 邮箱:itfun@163.com /// 日期:2004年3月31日 /////////////////////////////////////////////////////////////////////

jQuery往textarea中光标所在位置插入文本的方法

  本文实例讲述了jQuery往textarea中光标所在位置插入文本的方法.分享给大家供大家参考.具体实现方法如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 <html> <

jQuery往textarea中光标所在位置插入文本的方法_jquery

本文实例讲述了jQuery往textarea中光标所在位置插入文本的方法.分享给大家供大家参考.具体实现方法如下: <html> <head> <script src="jquery-1.8.1.min.js"></script> <script > $(function() { /* 在textarea处插入文本--Start */ (function($) { $.fn.extend({ insertContent : f

JavaScript中计算网页中某个元素的位置_javascript技巧

由于项目的需要,测试中需要对网页元素进行截图,以确保它看上去没有问题.之前我写过一篇文章介绍过一种方法,先使用 WebDriver 进行全屏截图,然后根据目标元素(DOM Element)所在的位置,再对截下来的图片进行剪裁,保留我们需要的位置即可. 那段代码一直都工作得很好,直到我知道了一个东西:iframe.iframe(普通的 frame 也是一样的,不过 frame 现在不太常见,这里只用 iframe 举例)中的内容被视为一个独立的网页,连 Window 对象也是和它的父级网页分开的.

如何显示在线人数和所在位置

显示|在线|在线人数 一.原理在.net中的global.asax中有Application_AuthenticateRequest事件和Application_BeginRequest事件是在每次访问aspx文件都会触发.但是Application_BeginRequest中不能对已经经过FROMS身份验证的身份ticket票进行识别.所以只能放到Application_AuthenticateRequest中去. 我的实现原理是:每次访问aspx文件时候都会判断在线表里面是否有这个用户(已经

win7系统怎么修改当前所在位置?

  win7系统怎么修改当前所在位置? 1.首先,咱们单击开始菜单,然后在菜单中点击进入到控制面板的界面中,在控制面板中,咱们单击其中的"时钟.语言和区域"选项. 2.在接下来弹出的界面中,咱们就可以看到如下图中所示的界面了,咱们直接在区域和语言下方单击进入到更改位置. 3.之后弹出区域和语言的设置窗口,咱们将界面切换到位置这一栏,然后下面的当前位置就可以供我们操作更改了,大家想设置到哪个位置就直接在这里选择就是了.设置好之后记得点击下方的确定按钮保存哦.

WPF中。如何获取textbox中。光标的坐标

问题描述 WPF中.如何获取textbox中.光标的坐标..我想在输入的时候,下面进行提示.需要获取到光标所在坐标谢谢各位大神. 解决方案 解决方案二:求指点...百度不到解决方案三: 解决方案四:你鼠标点中Textbox的时候出现了光标然后在获取鼠标的点中的点不是可以吗.解决方案五:TextBoxobj=SelectBoxasTextBox;//插入到光标处intci=obj.CaretIndex;if(ci>0&&ci==obj.Text.Length){obj.Text=obj

.net-C#winform如何获取全局其它窗口中的控件位置和大小

问题描述 C#winform如何获取全局其它窗口中的控件位置和大小 winform,程序运行后希望用户在任何其它窗口中点击鼠标时,记录鼠标点击的位置,如果点击的是个textbox,就记录那个textbox的位置和大小捕获鼠标点击已经用全局钩子实现,控件那个需求完全没思路,求思路 解决方案 首先自定义一个鼠标点击的参数类 参数类包含了点击控件的对象(位置大小) 包含了鼠标的状态(坐标)public class MouseEventArgsParameter { public MouseEventA