Это мой код, отображается элемент управления редактированием, я вижу номера строк, я могу вводить текст, но он не выполняет свертывание кода или подсветку синтаксиса.
Как вы думаете, что может быть не так в моем коде?< /p>
Я использую API Win32, и моя программа хорошо компилируется, единственная проблема заключается в том, что, что бы я ни пытался, я не могу заставить ее выделить синтаксис в этом случае html.
Мой компилятор — g++ ( GCC) 13.2.0
void InitScintilla(HWND hwnd) {
// Create the Scintilla window
hSci = CreateWindowEx(
0, "Scintilla", "",
WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_HSCROLL,
0, 0, 640, 480, // Set initial size here
hwnd, NULL, GetModuleHandle(NULL), NULL
);
if (!hSci) {
MessageBox(hwnd, "Could not create Scintilla control.", "Error", MB_OK | MB_ICONERROR);
return;
}
// Set default style
SendMessage(hSci, SCI_STYLESETFONT, STYLE_DEFAULT, (LPARAM)"Courier New");
SendMessage(hSci, SCI_STYLESETSIZE, STYLE_DEFAULT, 10);
SendMessage(hSci, SCI_STYLECLEARALL, 0, 0); // Apply the default style to all styles
// Set up Scintilla for basic text editing
SendMessage(hSci, SCI_SETSTYLEBITS, 7, 0);
SendMessage(hSci, SCI_SETTABWIDTH, 4, 0);
SendMessage(hSci, SCI_SETCODEPAGE, SC_CP_UTF8, 0);
SendMessage(hSci, SCI_SETVIEWWS, SCWS_INVISIBLE, 0);
SendMessage(hSci, SCI_SETWRAPMODE, SC_WRAP_WORD, 0);
SendMessage(hSci, SCI_SETBUFFEREDDRAW, TRUE, 0);
SendMessage(hSci, SCI_SETTABINDENTS, TRUE, 0);
SendMessage(hSci, SCI_SETUSETABS, FALSE, 0);
SendMessage(hSci, SCI_SETINDENT, 4, 0);
SendMessage(hSci, SCI_SETTABINDENTS, TRUE, 0);
SendMessage(hSci, SCI_SETBACKSPACEUNINDENTS, TRUE, 0);
SendMessage(hSci, SCI_SETINDENTATIONGUIDES, SC_IV_REAL, 0);
SendMessage(hSci, SCI_SETPASTECONVERTENDINGS, TRUE, 0);
// Set up the margin for line numbers
SendMessage(hSci, SCI_SETMARGINTYPEN, 0, SC_MARGIN_NUMBER);
SendMessage(hSci, SCI_SETMARGINWIDTHN, 0, 40); // Width of the margin in pixels
// Optional: Customize the line number margin (e.g., font, color)
SendMessage(hSci, SCI_STYLESETFORE, STYLE_LINENUMBER, RGB(0, 0, 0)); // Foreground color
SendMessage(hSci, SCI_STYLESETBACK, STYLE_LINENUMBER, RGB(220, 220, 220)); // Background color
SendMessage(hSci, SCI_STYLESETFONT, STYLE_LINENUMBER, (LPARAM)"Courier New"); // Font
SendMessage(hSci, SCI_STYLESETSIZE, STYLE_LINENUMBER, 10); // Font size
// Enable code folding
SendMessage(hSci, SCI_SETMARGINTYPEN, 1, SC_MARGIN_SYMBOL);
SendMessage(hSci, SCI_SETMARGINMASKN, 1, SC_MASK_FOLDERS);
SendMessage(hSci, SCI_SETMARGINWIDTHN, 1, 20);
SendMessage(hSci, SCI_SETMARGINSENSITIVEN, 1, TRUE);
SendMessage(hSci, SCI_SETFOLDFLAGS, 16, 0);
SendMessage(hSci, SCI_SETMODEVENTMASK, SC_MOD_INSERTTEXT | SC_MOD_DELETETEXT, 0);
// Configure fold markers
SendMessage(hSci, SCI_MARKERDEFINE, SC_MARKNUM_FOLDEROPEN, SC_MARK_MINUS);
SendMessage(hSci, SCI_MARKERDEFINE, SC_MARKNUM_FOLDER, SC_MARK_PLUS);
SendMessage(hSci, SCI_MARKERDEFINE, SC_MARKNUM_FOLDERSUB, SC_MARK_EMPTY);
SendMessage(hSci, SCI_MARKERDEFINE, SC_MARKNUM_FOLDERTAIL, SC_MARK_EMPTY);
SendMessage(hSci, SCI_MARKERDEFINE, SC_MARKNUM_FOLDEREND, SC_MARK_EMPTY);
SendMessage(hSci, SCI_MARKERDEFINE, SC_MARKNUM_FOLDEROPENMID, SC_MARK_EMPTY);
SendMessage(hSci, SCI_MARKERDEFINE, SC_MARKNUM_FOLDERMIDTAIL, SC_MARK_EMPTY);
// Set the lexer to HTML for syntax highlighting
SendMessage(hSci, SCI_SETLEXER, SCLEX_HTML, 0);
// Set up HTML keywords
const char* htmlKeywords =
"html head title body h1 h2 h3 h4 h5 h6 p br div span "
"a img ul ol li table tr td th tbody thead tfoot caption "
"form input button select option textarea";
SendMessage(hSci, SCI_SETKEYWORDS, 0, (LPARAM)htmlKeywords);
// Set styles for HTML syntax highlighting
SendMessage(hSci, SCI_STYLESETFORE, SCE_H_TAG, RGB(0, 0, 255)); // Tags
SendMessage(hSci, SCI_STYLESETBOLD, SCE_H_TAG, TRUE); // Tags bold
SendMessage(hSci, SCI_STYLESETFORE, SCE_H_TAGUNKNOWN, RGB(255, 0, 0)); // Unknown tags
SendMessage(hSci, SCI_STYLESETFORE, SCE_H_ATTRIBUTE, RGB(128, 128, 128)); // Attributes
SendMessage(hSci, SCI_STYLESETFORE, SCE_H_ATTRIBUTEUNKNOWN, RGB(255, 0, 0)); // Unknown attributes
SendMessage(hSci, SCI_STYLESETFORE, SCE_H_VALUE, RGB(163, 21, 21)); // Attribute values
SendMessage(hSci, SCI_STYLESETFORE, SCE_H_DOUBLESTRING, RGB(163, 21, 21)); // Double-quoted strings
SendMessage(hSci, SCI_STYLESETFORE, SCE_H_SINGLESTRING, RGB(163, 21, 21)); // Single-quoted strings
SendMessage(hSci, SCI_STYLESETFORE, SCE_H_OTHER, RGB(0, 0, 0)); // Other text
// Optional: Set the default font for all styles again to ensure consistency
SendMessage(hSci, SCI_STYLESETFONT, STYLE_DEFAULT, (LPARAM)"Courier New");
SendMessage(hSci, SCI_STYLESETSIZE, STYLE_DEFAULT, 10);
SendMessage(hSci, SCI_STYLECLEARALL, 0, 0); // Apply the default style to all styles
}
Подробнее здесь: https://stackoverflow.com/questions/785 ... ld-in-my-c
Scintilla не будет выделять или сворачивать код на моем C++. ⇐ C++
Программы на C++. Форум разработчиков
-
Anonymous
1716461757
Anonymous
Это мой код, отображается элемент управления редактированием, я вижу номера строк, я могу вводить текст, но он не выполняет свертывание кода или подсветку синтаксиса.
Как вы думаете, что может быть не так в моем коде?< /p>
Я использую API Win32, и моя программа хорошо компилируется, единственная проблема заключается в том, что, что бы я ни пытался, я не могу заставить ее выделить синтаксис в этом случае html.
Мой компилятор — g++ ( GCC) 13.2.0
void InitScintilla(HWND hwnd) {
// Create the Scintilla window
hSci = CreateWindowEx(
0, "Scintilla", "",
WS_CHILD | WS_VISIBLE | WS_VSCROLL | WS_HSCROLL,
0, 0, 640, 480, // Set initial size here
hwnd, NULL, GetModuleHandle(NULL), NULL
);
if (!hSci) {
MessageBox(hwnd, "Could not create Scintilla control.", "Error", MB_OK | MB_ICONERROR);
return;
}
// Set default style
SendMessage(hSci, SCI_STYLESETFONT, STYLE_DEFAULT, (LPARAM)"Courier New");
SendMessage(hSci, SCI_STYLESETSIZE, STYLE_DEFAULT, 10);
SendMessage(hSci, SCI_STYLECLEARALL, 0, 0); // Apply the default style to all styles
// Set up Scintilla for basic text editing
SendMessage(hSci, SCI_SETSTYLEBITS, 7, 0);
SendMessage(hSci, SCI_SETTABWIDTH, 4, 0);
SendMessage(hSci, SCI_SETCODEPAGE, SC_CP_UTF8, 0);
SendMessage(hSci, SCI_SETVIEWWS, SCWS_INVISIBLE, 0);
SendMessage(hSci, SCI_SETWRAPMODE, SC_WRAP_WORD, 0);
SendMessage(hSci, SCI_SETBUFFEREDDRAW, TRUE, 0);
SendMessage(hSci, SCI_SETTABINDENTS, TRUE, 0);
SendMessage(hSci, SCI_SETUSETABS, FALSE, 0);
SendMessage(hSci, SCI_SETINDENT, 4, 0);
SendMessage(hSci, SCI_SETTABINDENTS, TRUE, 0);
SendMessage(hSci, SCI_SETBACKSPACEUNINDENTS, TRUE, 0);
SendMessage(hSci, SCI_SETINDENTATIONGUIDES, SC_IV_REAL, 0);
SendMessage(hSci, SCI_SETPASTECONVERTENDINGS, TRUE, 0);
// Set up the margin for line numbers
SendMessage(hSci, SCI_SETMARGINTYPEN, 0, SC_MARGIN_NUMBER);
SendMessage(hSci, SCI_SETMARGINWIDTHN, 0, 40); // Width of the margin in pixels
// Optional: Customize the line number margin (e.g., font, color)
SendMessage(hSci, SCI_STYLESETFORE, STYLE_LINENUMBER, RGB(0, 0, 0)); // Foreground color
SendMessage(hSci, SCI_STYLESETBACK, STYLE_LINENUMBER, RGB(220, 220, 220)); // Background color
SendMessage(hSci, SCI_STYLESETFONT, STYLE_LINENUMBER, (LPARAM)"Courier New"); // Font
SendMessage(hSci, SCI_STYLESETSIZE, STYLE_LINENUMBER, 10); // Font size
// Enable code folding
SendMessage(hSci, SCI_SETMARGINTYPEN, 1, SC_MARGIN_SYMBOL);
SendMessage(hSci, SCI_SETMARGINMASKN, 1, SC_MASK_FOLDERS);
SendMessage(hSci, SCI_SETMARGINWIDTHN, 1, 20);
SendMessage(hSci, SCI_SETMARGINSENSITIVEN, 1, TRUE);
SendMessage(hSci, SCI_SETFOLDFLAGS, 16, 0);
SendMessage(hSci, SCI_SETMODEVENTMASK, SC_MOD_INSERTTEXT | SC_MOD_DELETETEXT, 0);
// Configure fold markers
SendMessage(hSci, SCI_MARKERDEFINE, SC_MARKNUM_FOLDEROPEN, SC_MARK_MINUS);
SendMessage(hSci, SCI_MARKERDEFINE, SC_MARKNUM_FOLDER, SC_MARK_PLUS);
SendMessage(hSci, SCI_MARKERDEFINE, SC_MARKNUM_FOLDERSUB, SC_MARK_EMPTY);
SendMessage(hSci, SCI_MARKERDEFINE, SC_MARKNUM_FOLDERTAIL, SC_MARK_EMPTY);
SendMessage(hSci, SCI_MARKERDEFINE, SC_MARKNUM_FOLDEREND, SC_MARK_EMPTY);
SendMessage(hSci, SCI_MARKERDEFINE, SC_MARKNUM_FOLDEROPENMID, SC_MARK_EMPTY);
SendMessage(hSci, SCI_MARKERDEFINE, SC_MARKNUM_FOLDERMIDTAIL, SC_MARK_EMPTY);
// Set the lexer to HTML for syntax highlighting
SendMessage(hSci, SCI_SETLEXER, SCLEX_HTML, 0);
// Set up HTML keywords
const char* htmlKeywords =
"html head title body h1 h2 h3 h4 h5 h6 p br div span "
"a img ul ol li table tr td th tbody thead tfoot caption "
"form input button select option textarea";
SendMessage(hSci, SCI_SETKEYWORDS, 0, (LPARAM)htmlKeywords);
// Set styles for HTML syntax highlighting
SendMessage(hSci, SCI_STYLESETFORE, SCE_H_TAG, RGB(0, 0, 255)); // Tags
SendMessage(hSci, SCI_STYLESETBOLD, SCE_H_TAG, TRUE); // Tags bold
SendMessage(hSci, SCI_STYLESETFORE, SCE_H_TAGUNKNOWN, RGB(255, 0, 0)); // Unknown tags
SendMessage(hSci, SCI_STYLESETFORE, SCE_H_ATTRIBUTE, RGB(128, 128, 128)); // Attributes
SendMessage(hSci, SCI_STYLESETFORE, SCE_H_ATTRIBUTEUNKNOWN, RGB(255, 0, 0)); // Unknown attributes
SendMessage(hSci, SCI_STYLESETFORE, SCE_H_VALUE, RGB(163, 21, 21)); // Attribute values
SendMessage(hSci, SCI_STYLESETFORE, SCE_H_DOUBLESTRING, RGB(163, 21, 21)); // Double-quoted strings
SendMessage(hSci, SCI_STYLESETFORE, SCE_H_SINGLESTRING, RGB(163, 21, 21)); // Single-quoted strings
SendMessage(hSci, SCI_STYLESETFORE, SCE_H_OTHER, RGB(0, 0, 0)); // Other text
// Optional: Set the default font for all styles again to ensure consistency
SendMessage(hSci, SCI_STYLESETFONT, STYLE_DEFAULT, (LPARAM)"Courier New");
SendMessage(hSci, SCI_STYLESETSIZE, STYLE_DEFAULT, 10);
SendMessage(hSci, SCI_STYLECLEARALL, 0, 0); // Apply the default style to all styles
}
Подробнее здесь: [url]https://stackoverflow.com/questions/78522506/scintilla-will-not-highlight-or-codefold-in-my-c[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия