使用Windows API for Edit Control 获得当前行数:EM_LINEFROMCHAR EM_LINEINDEX 获得总行数 Const EM_GETLINECOUNT = &HBA Private Declare Function SendMessageBynum Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Longret = SendMessageBynum(Text1.hwnd, EM_GETLINECOUNT, 0, 0&)
获得当前行数:EM_LINEFROMCHAR EM_LINEINDEX
获得总行数
Const EM_GETLINECOUNT = &HBA
Private Declare Function SendMessageBynum Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Longret = SendMessageBynum(Text1.hwnd, EM_GETLINECOUNT, 0, 0&)
IDC_RICHEDIT找到了吗?
当前行数:用SendMessage(hwnd,EM_LINEFROMCHAR,Index,0)
当前列数:用SendMessage(hwnd,EM_LINEIndex,curLineNo,0)得到当前行偏移
和Index相减就是列数,
你应该去查Editwindow的API帮助
1. GetCaretPos( lpPoint );
2. nIndex = SendMessage(hEditWnd, EM_CHARFROMPOS, 0, MAKELONG(lpPoint->x, lpPoint->y));
3. nLine = SendMessage(hEditWnd, EM_LINEFROMCHAR, nIndex, 0);
nLine就是当前光标所在的行号(第一行为0)
在VB中好象没有 MAKELONG()这个函数,也没有lpPoint->x的引用方法(好象是VC的)
Dim Pa as POINTAPI,可怎么用Pa变量?
SendDlgItemMessage(IDC_RICHEDIT, EM_EXLIMITTEXT, 0, 65536L)
可IDC_RICHEDIT和EM_EXLIMITTEXT的值不知道,具体也没写清楚