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

2016-02-19 14:54 32 1 收藏

下面是个简单易学的如何实现在TextBox中如何得知Caret所在位置教程,图老师小编详细图解介绍包你轻松学会,喜欢的朋友赶紧get起来吧!

【 tulaoshi.com - 编程语言 】

  

'在form中放一个textBox两个labelConst EM_GETSEL = &HB0Const EM_LINEFROMCHAR = &HC9Const EM_LINEINDEX = &HBBPrivate Declare Function SendMessage Lib "user32" Alias "SendMessageA" _(ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, _lParam As Any) As LongPublic Sub GetCaretPos(ByVal hwnd5 As Long, LineNo As Long, ColNo As Long)Dim i As Long, j As LongDim lParam As Long, wParam As LongDim k As Longi = SendMessage(hwnd5, EM_GETSEL, wParam, lParam)j = i / 2 ^ 16 '取得目前Caret所在前面有多少个byteLineNo = SendMessage(hwnd5, EM_LINEFROMCHAR, j, 0) '取得前面有多少行LineNo = LineNo + 1k = SendMessage(hwnd5, EM_LINEINDEX, -1, 0)'取得目前caret所在行前面有多少个byteColNo = j - k + 1End SubPrivate Sub Form_Load()Dim LineNo As Long, ColNo As LongCall GetCaretPos(Text1.hwnd, LineNo, ColNo)Label1.Caption = LineNoLabel2.Caption = ColNoEnd SubPrivate Sub Text1_KeyUp(KeyCode As Integer, Shift As Integer)Dim LineNo As Long, ColNo As LongCall GetCaretPos(Text1.hwnd, LineNo, ColNo)Label1.Caption = LineNoLabel2.Caption = ColNoEnd SubPrivate Sub Text1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)Dim LineNo As Long, ColNo As LongCall GetCaretPos(Text1.hwnd, LineNo, ColNo)Label1.Caption = LineNoLabel2.Caption = ColNoEnd Sub

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

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

延伸阅读
标签: windows系统
如何在Windows8中修改当前所在地理位置   步骤1:打开控制面板; 步骤2:在"时钟、语言和区域"上左键单击; 步骤3:在"更改位置"上左键单击; 步骤4:选择位置标签,在"主要位置(H):"上左键单击; 步骤5:通过鼠标滚轮上下滚动,选择你要更改的位置,单击; 步骤6...
标签: 办公软件
1. 安排会议 单击“工具”菜单之“联机协作”。注意:如果此时你的WORD中该菜单文字皆为灰色,那么,对不起,它表示你在安装OFFICE2000时没有装载可选项“MS NetMeeting(微软网络会议程序)”,而此程序却恰恰是本文的主角。请将它安装上。 现在单击“安排会议”选项,系统弹出 “会议”对话框。就像我们填过无数次的个人简历一样...
在声明区中声明如下(在.bas档中用Public,在Form中用Private) PrivateDeclareFunctionShellExecuteLib"shell32.dll"Alias"ShellExecuteA"(ByValhWndAsLong,ByVallpOperationAsString,ByVallpFileAsString,ByVallpParametersAsString,ByVallpDirectoryAsString,ByValnShowCmdAsLong)AsLong 在程序中 Intranet: Sh...
在数据库编程中,不必要也不可能将应用程序操作的所有数据库字段放入一个数据库文件中。正确的数据库结构应是:将数据库字段放入多个数据库文件,相关的数据库都包含一个唯一的要害字段,在多数据库结构里可以建立联系。 例如:要编制一个人事治理程序,为简化演示程序,只建立两个数据库,每个数据库都只建立两个字段。 ...
1.设置TVirtualStringTree属性:       toFullRowSelect : false;       toMultiSelect:false;        toExtendedFocous:true;        toEditable:true;       ...

经验教程

751

收藏

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