2009-10-24 6 views
-1

예를 들어, 다음 텍스트를 편집 중이라고 가정 할 때 (\ t는 텍스트 형식이 아닙니다.) '\ t \ t \ t 일부 텍스트 ...' 이고 입력 키보드 위치가 'S' 그리고 'S'(이 경우 3입니다.) 전에 탭 수를 얻고 싶습니다.일부 텍스트 입력에서 텍스트 들여 쓰기 (탭)를 얻으려면 어떻게해야합니까?

Win32 API를 사용하여 그 수의 탭을 얻는 방법은 무엇입니까?

p.s. 일부 현재 전체 줄을 가져오고 (그리고 그 텍스트를 구문 분석하는) 어떤 함수가 있을까요?

편집 : 그래서 현재 활성화되어있는 (편집중인) 텍스트 편집기에서 현재 활성 행의 탭 수를 결정하기 위해 내 프로그램 (백그라운드에서 실행 중이며 GUI가 없음)을 원합니다. .

+3

당신이이 질문에 추가 한 태그와 어떻게 관련되는지 설명 할 수 있습니까? 텍스트를 편집하고 있다면 무엇을 편집하고 있습니까? Win32 API는 이것에 어떻게 들어 맞습니까? C#, C++ 및 Java와 관련이 있습니까? 프로그래밍 언어에서 텍스트가 포함 된 문자열이있는 경우 관심 색인 바로 앞에있는 탭 수를 계산하는 것은 간단합니다. –

+0

C#, C++ 및 Java 개발자는 일반적으로 Win32 API를 사용하여 예를 들어 현재 활성 창, 캐럿 위치 또는 현재 활성 행을 가져옵니다. 그래서 현재 활성화되어있는 (편집중인) 텍스트 편집기에서 현재 활성 행의 탭 수를 결정하는 내 프로그램 (백그라운드에서 실행 중이며 GUI가 없음)을 원합니다. – dede

+0

@ 그렉 : 왜 투표를해야합니까? – dede

답변

1

표준 Windows 메모장과 같은 일부 응용 프로그램의 경우 다른 응용 프로그램에서이 작업을 수행 할 수 있습니다. 메모장 자체는 크기가 조정 가능한 창 안에 큰 Win32 "Edit" control보다 약간 작습니다. 따라서 모든 일반 Win32 Edit 컨트롤 메시지를 사용하여 실제 텍스트와 캐럿 위치 등을 가져올 수 있습니다.

그러나 일반적으로 모든 Windows 텍스트 편집기의 경우 응용 프로그램이 텍스트 편집 요구 사항에 Win32 Edit 컨트롤을 사용하도록 요구할 필요가 없습니다. 실제로 메모장을 다시 작성하는 것입니다. 캐럿이 가리키는 곳을 알아내는 표준 Win32 API 메소드는 없습니다. 애플리케이션이 화면에 텍스트를 자유롭게 표시 할 수 있고 (해당 API가없는 애플리케이션 내부에서 해당 텍스트를 내부적으로 저장하기 때문입니다.) 요구).

0

최고의 Java 코딩 실습은 코드 운영 체제 플랫폼을 가능한 한 독립적으로 만드는 것입니다. 본질적으로 Windows 고유의 유틸리티 (예 : Win32 API에 많이 의존)를 구현하려는 경우 Java보다는 C++ 또는 C#을 사용하는 것이 좋습니다.