请问如何获得CRichEditCtrl中的字符的位置,某个位置上字符的置,还有光标的位置昨天发了个贴子,不晓得是不是嫌分少,还是我没有说清楚,硬是没人回
望各位大虾救救小弟,感激不尽!!!!
先谢过!!
望各位大虾救救小弟,感激不尽!!!!
先谢过!!
解决方案 »
- 大家帮忙推荐几本书啊
- 256色灰度图提取轮廓问题。
- 加密问题,期望您的帮助
- bmp图象处理?
- 如何让程序运行.chm文件?
- 高手在哪里????如何将avi视频文件中的某些幀抽出来,形成一个新的avi文件???????
- 在Image上点击鼠标左键不放,鼠标不移动,为何Image的MouseMove事件不停的响应?如何让它不响应?(急,在线等待)
- 发个贴,乐一乐!!!呵呵,高兴散分!!
- VC++窗口布局保存
- CSerialPort问题:一个对话框怎么调用另一个对话框里的写串口函数?
- 如何得到RegisterWindowMessage注册的消息的字符串
- COleDateTime如何變成CString?
CRichEditCtrl::GetCharPos()得到某个位置上的字符,
CWnd::GetCaretPos()得到光标位置,
我想要的是以字符为单位的(即光标在第几行第个列)
另外还要第x行x列的字符是什么
CDC::GetTextExtent获得字符或者字符串的宽度和高度。获得某个字符的位置大概是这样:
CRichEditCtrl::FindText,这个函数就像查找一样,返回一个相对于前面的一个字符数目。想要的是以字符为单位的光标位置.先用GetCaretPos()得到一个point,然后
x = point.x / 字符宽度; //得到第几个字符
y = point.y / 字符高度;//得到第几行获得第x行字符串文本,
int GetLine( int nIndex, LPTSTR lpszBuffer ) const;
int GetLine( int nIndex, LPTSTR lpszBuffer, int nMaxLength ) const;我就记得个大概,windows程序设计(上册)有专门讲这个的,你查查。
int linechar;
edit.GetSel(st, end);
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;
row和col分别是行号和列号, edit 是你的RichEditCtrl
光标的位置就用GetSel就可以得到了
多谢各位了