Scintilla에서는 각 문자 뒤에 문자 스타일을 나타내는 바이트가 옵니다. 문자 바이트와 스타일 바이트가 함께 문자 단위를 형성합니다. 스타일 바이트의 8비트는 문자 스타일과 문자 표시기라는 두 부분으로 나뉩니다. 텍스트의 문자 표시는 SCI_INDICATORFILLRANGE 메시지를 통해 설정할 수 있다. 기본적으로 하위 5비트는 문자 스타일이고 상위 3비트는 문자 표시기입니다. 따라서 32개의 문자 스타일이 있을 수 있습니다. 구문 오류, 더 이상 사용되지 않는 이름, 잘못된 들여쓰기 및 기타 정보를 나타내는 데 사용할 수 있는 3개의 독립 문자 표시기입니다. SCI_SETSTYLEBITS 메시지를 사용하여 문자 스타일 비트를 최대 7비트까지 설정할 수 있으며 나머지는 문자 표시기에 할당됩니다.
위치는 신틸라에서 문자의 위치나 문자 앞의 공백 지점을 나타낸다. 첫 번째 문자의 위치는 0이고 두 번째 문자의 위치는 1입니다. 문서에 nLen 문자가 포함된 경우 마지막 문자의 위치는 nLen – 1입니다. 커서는 두 문자 사이에 존재하며 첫 번째 문자(0) 앞과 마지막 문자(nLen) 뒤에 위치할 수 있습니다.
두 문자를 하나의 문자로 처리할 경우 두 문자 사이에는 커서가 존재할 수 없습니다. 이러한 상황은 일반적으로 중국어와 같은 멀티바이트 문자나 줄 종결자가 CRLF인 경우에 발생합니다. 상수 INVALID_POSITION(-1)은 잘못된 위치를 나타냅니다.
성능상의 이유로 텍스트의 모든 줄은 동일한 높이, 즉 현재 스타일에서 가장 큰 글꼴의 높이를 갖습니다.
SCI_GETTEXT, SCI_SETTEXT
1) SCI_GETTEXT(int length, char *text)
텍스트 가져오기:
(1) 텍스트가 0이면 전체 문서 길이 len + 1을 반환합니다. (2) 길이가 0이면 0을 반환합니다.
(3) 텍스트가 0이 아니고 길이가 0보다 크면 길이 – 1을 반환하고 텍스트는 위치 0부터 시작하는 길이 – 1 문자와 0 종결자로 채워집니다. . 길이가 문서 길이보다 길면 추가 위치는 널 문자 0으로 채워집니다.
unsigned int len = SendMessage(SCI_GETTEXT, 0, 0); char *chText = new char[len]; SendMessage(SCI_GETTEXT, len, (LPARAM)chText); … delete [] chText;2) SCI_SETTEXT(eb3ae17112958a950f284bf658cc0d85, const char *text)
문서 텍스트를 0으로 끝나는 상수 문자열인 text로 설정합니다. 텍스트가 0이면 FALSE(0)를 반환하고, 그렇지 않으면 TRUE(1)를 반환합니다.
SCI_SETSAVEPOINT SCI_SETSAVEPOINT저장 지점을 설정하면 문서 상태가 수정되지 않고 TRUE(1)를 반환합니다. SCI_SETSAVEPOINT 메시지는 SCN_SAVEPOINTREACHED 이벤트 알림을 트리거합니다. 문서 상태가 수정됨으로 변경되면 SCN_SAVEPOINTLEFT 이벤트 알림이 트리거됩니다.
지정된 줄의 텍스트를 가져오고 지정된 줄의 텍스트 길이를 반환합니다(다음 줄 포함). 터미네이터). 줄 번호 line은 0부터 시작합니다. 줄 번호가 최대 줄 번호보다 크면 0이 반환됩니다. text가 0이면 지정된 텍스트 줄의 길이가 직접 반환되고, text가 0이 아닌 경우 텍스트는 지정된 텍스트 줄로 채워지지만 종결자 0은 자동으로 설정되지 않습니다.
unsigned int len = SendMessage(SCI_GETLINE, 1, 0); char *chText = new char[len + 1]; memset(chText, 0, len + 1);SendMessage(SCI_GETLINE, 1, (LPARAM)chText); …delete [] chText;SCI_REPLACESELSCI_REPLACESEL(eb3ae17112958a950f284bf658cc0d85, const char *text)
선택한 텍스트를 바꿉니다. text는 0으로 끝나는 상수 문자열입니다. 텍스트를 선택하지 않으면 현재 위치에 텍스트가 삽입됩니다. 교체 후 커서는 삽입된 텍스트 뒤에 있게 되며 뷰는 자동으로 스크롤되어 텍스트가 표시됩니다. 텍스트가 0이면 FALSE(0)를 반환하고, 그렇지 않으면 TRUE(1)를 반환합니다.
문서를 읽기 전용으로 설정하고 TRUE(1)를 반환합니다. 문서가 읽기 전용 상태일 때 문서가 수정되면 SCN_MODIFYATTEMPTRO 이벤트 알림이 트리거됩니다.
2) SCI_GETREADONLY
문서의 읽기 전용 상태를 가져오고 TRUE(1) 또는 FALSE(0)를 반환합니다.
지정된 텍스트 범위를 가져옵니다. tr이 0이면 0을 반환하고, 그렇지 않으면 텍스트 길이를 반환합니다. (0 종결자는 포함되지 않음) tr.lpstrText를 지정된 텍스트 범위와 0 종결자로 채웁니다. tr.chrg.cpMax가 -1이면 문서의 끝을 의미합니다. tr.lpstrText 문자 버퍼가 충분히 큰지 확인해야 합니다((tr.chrg.cpMax - tr.chrg.cpMin) + 1).
SCI_GETTEXTRANGE와 유사하지만, 필요한 문자 버퍼 크기는 SCI_GETTEXTRANGE입니다. 2번(2 * (tr.chrg.cpMax - tr.chrg.cpMin) + 2). 신틸라는 tr.lpstrText 끝에 두 개의 0 종결자를 자동으로 추가합니다.
지정된 크기의 바이트를 수용할 수 있을 만큼 큰 버퍼를 할당하고 TRUE(1)를 반환합니다. 버퍼는 지정된 크기가 현재 버퍼 크기보다 큰 경우에만 재할당되며, 그렇지 않으면 처리가 수행되지 않습니다.
현재 위치에 지정된 텍스트의 지정된 길이를 삽입합니다. s는 0으로 끝나는 상수 문자열입니다. , 0을 반환합니다. 텍스트를 삽입한 후 현재 위치는 삽입된 텍스트 뒤에 있지만 뷰가 자동으로 스크롤되어 표시되지는 않습니다.
현재 위치에 스타일 텍스트를 삽입하고, 처리 방법은 SCI_ADDTEXT와 유사하며, 0을 반환한다.
문서 끝에 텍스트를 삽입한다. 처리 방법은 SCI_ADDTEXT와 유사하며, 0이 반환된다. .
SCI_INSERTTEXT(int pos, const char *text)
지정된 위치에 텍스트를 삽입한다. 처리 방법은 SCI_ADDTEXT와 유사하며 0을 반환한다. pos가 -1이면 현재 위치에 삽입한다는 뜻이다.
SCI_CLEARALL
SCI_CLEARALL
문서가 읽기 전용이 아닌 이상 문서에서 모든 문자를 삭제하고 0을 반환합니다.
SCI_CLEARDOCUMENTSTYLE
SCI_CLEARDOCUMENTSTYLE
문서의 모든 스타일 정보를 지우고 0을 반환합니다. 이는 일반적으로 문서 스타일을 변경해야 할 때 사용됩니다.
SCI_GETCHARAT
SCI_GETCHARAT(int position)
지정된 위치의 문자를 반환합니다. position이 0보다 작거나 문서 끝보다 크면 0이 반환됩니다.
SCI_GETSTYLEAT
SCI_GETSTYLEAT(int position)
지정된 위치의 스타일을 반환합니다. position이 0보다 작거나 문서 끝보다 크면 0이 반환됩니다.
SCI_SETSTYLEBITS, SCI_GETSTYLEBITS
1) SCI_SETSTYLEBITS(int 비트)
스타일 비트 너비를 바이트 단위로 설정하고 TRUE(1)를 반환합니다. 기본값은 5비트이고 최대값은 7비트로 설정할 수 있습니다. 나머지 비트는 문자 표시를 나타내는 데 사용됩니다.
2) SCI_GETSTYLEBITS
스타일 비트 너비를 바이트 단위로 반환합니다.
SCI_TARGETASUTF8 *
SCI_TARGETASUTF8(eb3ae17112958a950f284bf658cc0d85, char *s)
대상 문자열을 UTF8 인코딩 형식으로 변환하고, 인코딩된 텍스트 길이를 반환하고, 바이트를 인코딩합니다. s로 채워집니다. 이 메시지는 GTK+ 플랫폼에서만 사용할 수 있습니다.
SCI_ENCODEDFROMUTF8 *
SCI_ENCODEDFROMUTF8(const char *utf8, char *encoded)
UTF8 형식 문자열을 문서 인코딩 형식으로 변환하고 변환된 바이트 길이를 반환하고 변환된 바이트 길이를 채웁니다. 바이트를 인코딩합니다. 이 메시지는 GTK+ 플랫폼에서만 사용할 수 있습니다.
SCI_SETLENGTHFORENCODE
SCI_SETLENGTHFORENCODE(int bytes)
문서 인코딩 길이를 설정하고 0을 반환합니다.
위 내용은 Scintilla User Guide(2) 내용입니다. - 전문 검색 및 수정에 대한 자세한 내용은 PHP 중국어 홈페이지(www.php.cn)를 참고해주세요!