Привет всем. Вот такая проблема возникла: Есть эдитбокс, для которого можно устанавливать различные моноширинные шрифты. Я ввожу в него текст... Все нормально, но стоит мне только установить для этого эдитбокса жирный или курсивный моноширинный шрифт и начать вбивать кириллицу, сразу все плывет и как-то криво выводится (наблюдал это в WinXP, в Win95 - все нормально). Почему так? Заранее благодарен за ответ.
сталкивался с такой же проблемой, но она воспроизводилась только для многострочных эдитов, причём не зависела от шрифта и раскладки. решением тогда была принудительная перерисовка окна
Спасибо за рекомендацию. У меня тоже мультилайновый эдит, и когда наблюдаются выше описанные глюки, он засоряется всяким мусором, который исчезает при перерисовке окна, однако наблюдается и такое: при вводе текста, с каждым символом курсор все сильнее отдаляется от строки, он как бы опережает ее, из-за этого место вывода новых символов перестает совпадать с положением курсора. А принудительная перерисовка не устраняет этот эффект. Шрифт устанавливаю следующим образом: Код (Text): invoke CreateFont,16,NULL,NULL,NULL,700,FALSE,FALSE,FALSE,DEFAULT_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,DEFAULT_PITCH,SADD("Fixedsys") mov hFont,eax invoke SendMessage,hEdit,WM_SETFONT,eax,TRUE Высота и ширина символов значения не имеют. При этом глюки наблюдаются только если шрифт фиксированной ширины && жирный или курсивный && печатаю кириллицей. Во всех остальных случаях проблем нет. Эдит имеет стили: ES_MULTILINE, ES_AUTOVSCROLL, ES_AUTOHSCROLL, ES_WANTRETURN, WS_HSCROLL, WS_VSCROLL, WS_CHILD, WS_VISIBLE, WS_EX_CLIENTEDGE.