依然是纯调用API写记事本的问题 - C++ Builder / Windows SDK/API
我写的记事本里的FIND的实现方法是用GetWindowText将EDIT CONTROL里的文本内容存入一个BUFFER,用strstr函数在BUFFER中来查找FIND TEXT,用一个指针来得到strstr的返回值,即是FIND TEXT的位置.最后SendMessage EM_SETSEL选中FIND TEXT.
这种方法有个问题,就是当查找完毕之后,即便是我将光标移动到文本首,但是因为指示FIND TEXT位置的指针依然在最后一个FIND TEXT的后面,所以就没办法实现在不重新开启对话框的情况下继续从文首开始查找了.
我想请问一下,有没有什么仅仅调用API的方法,能使指示FIND TEXT位置的指针跟着光标位置移动呢,这样实现实时的FIND.
希望大家给予帮助,谢谢.
[解决办法]
SendMessage (hwndEdit, EM_GETSEL, 0, LPARAM(piOffset) ) ; //假设你的piOffset是DWORD类型(或32位整型)if(*piOffset<0 || *piOffset>=iLength ) *piOffset = 0; //如果已经末尾则从头开始找pstrPos = _tcsstr (pstrDoc + * piOffset, lpfr->lpstrFindWhat) ;