2011-05-14 4 views
0

편집 컨트롤이있는 상황이 있으며 지침이 필요합니다. 텍스트 편집기는 대부분의 경우 정상적으로 작동하지만 다른 경우에는 입력하기 전에 마지막 몇 자에 따라 입력 한 문자를 기반으로 마지막 몇 문자를 다른 문자로 바꿔야합니다.CEdit의 내용을 조작하는 방법은 무엇입니까?

나에게 분명하게 보이는 해결책은 내용이 변경되기 바로 전에 문자 버퍼, GetWindowText()를 사용하고 버퍼에 입력 한 문자를 추가하고 필요한 경우 버퍼를 조작 한 다음 SetWimdowText()를 조작하는 것입니다.

내가 알고있는 편집 컨트롤 자체 버퍼가 있습니다. 그래서 이것이 내 자신의 버퍼를 가지는 올바른 접근법인가요? 아니면 버퍼를 공유 할 수있는 방법이 있습니까? 편집기에는 4MB 이상의 문자가 없을 수 있습니다.

Windows 7 및 XP에서 작동하려면이 기능이 필요하지만 이전 버전을 사용하는 것은 아닙니다. MFC를 사용합니다.

도움 주셔서 감사합니다.

답변

1

당신은 당신 자신의 버퍼가 필요하지 않을 것이고 실제로 그것은 동기화를 벗어날 가능성이 있기 때문에 하나를 가진 것이 위험 할 것입니다.

하지만 전체 편집 텍스트를 한 번에 설정할 필요는 없습니다. documentation에서 : 편집 컨트롤은 여러 경우 또한

, 수와의 CEdit 멤버 함수의 getline, SetSel, GetSel 및 ReplaceSel를 호출하여 컨트롤의 텍스트의 일부를 설정합니다.

ReplaceSel 내가 원하는 것 같습니다. 이 텍스트는 여러 줄 편집 컨트롤에 대해 설명하지만 SetSel, ReplaceSel 등은 한 줄 편집 컨트롤로 잘 작동합니다.

관련 문제