|
탭의 간격은 에디터 맘입니다. 원래 탭의 의미는 그게 아니었을테지만, 현재로서는 에디터마다(더 구체적으로는 에디트 컨트롤마다) 탭 간격이 다릅니다. 앞 글자와의 거리와 무관하게 일정 컬럼에 탭이 멈출 수도 있고요. 예를 들어 C++빌더 에디터에서도 탭 간격은 개발자가 맘대로 설정하게 되어있죠.
예를 들어 Win32의 표준 에디트 컨트롤에서도 EM_SETTABSTOPS 메시지를 이용해서 탭 위치를 마음대로 지정할 수 있게 되어 있습니다. 물론 다른 모든 에디터들은 필요없고 이 표준 에디트 컨트롤(VCL의 TEdit와 TMemo가 이넘 기반이죠)에 한정한다면 탭 위치를 맘대로 지정할 수는 있겠죠.
초보 님이 쓰신 글 :
: 검색해도 안 나와서 질문드립니다.
:
: 1. Tab 을 눌렀을때나 printf 등의 String 출력 함수에서 '\t' 를 입력했을때 글자와 글자 사이에 띄워지는 간격이
: 프로그램마다 다른건지요? 아니면 시스템에 설정되어 있고 그걸 프로그램에서 Default 로 두고 사용자로 하여금
: 재설정이 가능하게 만들어 놓은건가요?
:
: 2. 시스템에 설정되어 있다면, 탭 간격을 알아내는 함수 이름이 뭔가요?
:
: 3. 각 문자마다 Width 가 다른데 어떻게 탭 간격을 정해서 정확히 시작 X 좌표가 맞게 하는건가요?
: 방금 생각하기로는... ASCII CODE 32번인 스페이스 (공백)문자 Width 의 몇배해서 '\t' 이전 문자열이
: 메꾼 영역 다음의 탭 시작 X 좌표에 커서(다음 문자의 시작 X 좌표)를 옮기는 방식이면 될거 같은데
: 정확한 알고리즘 아시는 분 답변부탁드립니다.
|