公司项目,要得到当前窗口的编辑光标的位置,注意,是编辑光标,就是在一个编辑框里一闪一闪的那个小竖线,不是鼠标光标哦....我用了GetCaretPos()函数,但是问题来了,对于一些窗体,我用GetFocus()函数确定了他是有当前的键盘焦点的,不过GetCaretPos()函数返回的x和y都是0,无论我怎么移动光标都没用,请问,这是怎么回事?是不是某些窗体经过特殊处理,GetCaretPos()函数无效?
解决方案 »
- 如何绘制拓扑图
- 急!如何实现定时开机??
- 如何将图像按实际大小打印出来?急得白了头...
- 如何实现员工刷卡后,将信息存入数据库的功能?!
- 请问如何改变编辑框edit的颜色,并且请问如何不让对话框显示上面的蓝色的亮条?
- 组件如何将数据推送到客户?
- 如何在onButton()事件里调用函数OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
- little questin about CTime
- 个人意愿和老板意见有偏差,该当如何处理?
- VC写入数据库再导出WORD
- word对象生成的二进制流(IStorage)怎么反向生成 word文档??急
- 有没有网络高手想跳槽?进来聊一下!
CEdit &edit = GetEditCtrl();
edit.GetSel(st, end);
int linechar;
int row = 1;
while(true)
{
linechar = edit.LineIndex(row);
if(linechar > st || linechar == -1) break;
row++;
}
linechar = edit.LineIndex(row-1);
int col = st - linechar;
MyEdit=GetEditCtrl();
MyEdit.GetSel(start,end); //start或end的值就是插入符的字符索引
row=MyEdit.LineFromChar(start); //获取插入符的行坐标
column=start-MyEdit.LineIndex(row); //获取插入符的列坐标这里面由于光标处于独立闪烁状态,所以start=end