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

我想在一个C#程序运行的时候获取光标的位置!不管这个光标是在程序内部还是外部都能在光标处输入文字,就像如果光标在记事本上就在记事本上输入,在word上就在Word上输入,... 我想在一个C#程序运行的时候获取光标的位置!不管这个光标是在程序内部还是外部都能在光标处输入文字,就像如果光标在记事本上就在记事本上输入,在word上就在Word上输入,在网页上就在网页上输入文字!关键是获取光标的位置。 展开
 我来答
742ucib874
2011-08-27 · TA获得超过177个赞
知道答主
回答量:527
采纳率:0%
帮助的人:291万
展开全部
在EDIT BOX的属性界面将Multiline勾选使其支持多行输入,再将Want return勾上使其支持回车符的输入!在ClassWizard中添加对话框的事件,并关联EDIT BOX为Control变量m_edit;然后添加对话框的PreTranslateMessage事件,事件代码如下:
BOOL CKsDlg::PreTranslateMessage(MSG* pMsg)
{
// TODO: Add your specialized code here and/or call the base class
if (WM_KEYFIRST<=pMsg->message && pMsg->message<=WM_KEYLAST)
{
if (pMsg-> wParam == VK_RETURN)
{
if (GetFocus()==GetDlgItem(IDC_EDIT1))
{
int lines,lens=1; //定义当前行的行号,以及当前行长度
lines=m_edit.LineIndex(-1);//获取当前输入行的行号
lens=m_edit.LineLength(lines);

char *mstr=new char[lens]; //定义一个字符串指针用来获取当前行的内容
m_edit.GetLine(lines,mstr,lens); //取得当前行的内容
CString strs; //定义一个C++字符串类变量
strs.Format("%s",mstr);//将当前行的内容转换成CString类;
delete mstr;//释放mstr所占的空间
这里输入你想要执行的操作!比如要执行的命令,我不知道你想要执行什么类型的命令所以这里能给你写出来
this->SetFocus();//这里把焦点转回给对话框,否则可能会执行两次当前事件!
}
}
}
return CDialog::PreTranslateMessage(pMsg);
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式