首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

依然是纯调用API写记事本的有关问题

2012-02-15 
依然是纯调用API写记事本的问题 - C++ Builder / Windows SDK/API我写的记事本里的FIND的实现方法是用GetW

依然是纯调用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.
希望大家给予帮助,谢谢.

[解决办法]

探讨

回2楼的朋友 我才学 所以要从底层来打基础嘛 扎实点
回3楼的朋友 这点我知道 但是第一个参数就是我给的BUFFER 我就是不知道怎么样通过鼠标或者键盘来确定BUFFER 我想请问的问题就是如何在开启FIND对话框的时候 每次移动光标后 只将光标后面的文本内容重新复制进BUFFER

[解决办法]
你改一下piOffset不就行了?比如在查找之前:
C/C++ code
SendMessage (hwndEdit, EM_GETSEL, 0, LPARAM(piOffset) ) ; //假设你的piOffset是DWORD类型(或32位整型)if(*piOffset<0 || *piOffset>=iLength ) *piOffset = 0; //如果已经末尾则从头开始找pstrPos = _tcsstr (pstrDoc + * piOffset, lpfr->lpstrFindWhat) ; 

热点排行