C#下如何获取光标的位置并在光标后输入字符

C#下如何获取光标的位置并在光标后输入字符,第1张

[DllImport("user32dll", EntryPoint = "SendMessageA")]

private static extern int SendMessage(IntPtr hwnd, int wMsg, int wParam, StringBuilder lParam);

[DllImport("user32 ")]

private static extern IntPtr SendMessage(IntPtr hWnd, int msg, int wParam, int lParam);

private void button2_Click(object sender, EventArgs e)

{

int EM_LINEINDEX = 0xBB;

int EM_LINEFROMCHAR = 0xC9;

int EM_GETSEL = 0xB0;

int EM_GETLINE = 0xC4;

//通过API完成很简单的

//通过向文本框传递EM_LINEFROMCHAR消息可以得到光标所在的行数

int Row = (int)SendMessage(textBox1Handle, EM_LINEFROMCHAR, -1, 0);

////通过向文本框传递EM_GETSEL消息可以得到编辑控件中一段选定内容的起点与终点字符的个数

//int s = (int)SendMessage(textBox1Handle, EM_GETSEL, 0, 0);

////通过向文本框传递EM_GETSEL消息可以得到每一行的第一个字符在全文中的字符序号

//int li = (int)SendMessage(textBox1Handle, EM_LINEINDEX, -1, 0);

//int Col = (s & 0xffff) - li + 1;

StringBuilder currentLine = new StringBuilder(256);

SendMessage(textBox1Handle, EM_GETLINE, Row, currentLine);

MessageBoxShow(currentLineToString());

}

可以试一下

int cpxy;

LPTSTR ls=new TCHAR[100];

p=&(GetEditCtrl());//获取当前控件的指针

POINT cp=GetCaretPos();//获取光标相对于控件的位置

cpxy=p->CharFromPos(cp);//获取光标位置

int row=HIWORD(cpxy);//获取光标的行号

int n=p->LineLength(-1);//获取当前行的字数

p->GetLine(row,ls,n);//把当前行的字符复制到ls中

如果是光标的坐标,可以考虑:

1 获取该网页实例

2 获取该网页中光标的坐标(相对)

如果是鼠标坐标,可以这样考虑:

1 获取鼠标的绝对坐标(屏幕坐标)

2 获取该网页的实例

3 获取该网页的绝对坐标

4 计算鼠标的相对坐标

do_cursorChanged该函数在头文件那边应该放在public/protected/private slots标签下:

如:

public slots:

void do_cursorChanged();

以上就是关于C#下如何获取光标的位置并在光标后输入字符全部的内容,包括:C#下如何获取光标的位置并在光标后输入字符、CEDITview获取当前光标行的内容、按键精灵 获取光标坐标问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/10145380.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-05
下一篇2023-05-05

发表评论

登录后才能评论

评论列表(0条)

    保存