![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Подскажите как изменить кодировку в Edit WINAPI. Вместо русских букв отображается всякая чушь. А английские все нормально.
|
#2
|
|||
|
|||
![]() Цитата:
|
#3
|
|||
|
|||
![]() Цитата:
|
#4
|
|||
|
|||
![]() НУ тогда выстави ES_OEMCONVERT.
|
#5
|
||||
|
||||
![]() На самом деле, там, наверное, шрифт правильный не выставлен, и используется умолчательный System, оставленный в XP для совместимости с Windows 3.x. Нужно разобраться и выставить через API правильный шрифт, вроде Tahoma.
А по большому счету, в ситуации на 2015-й год все приложения нужно создавать в юникоде, если нет противопоказаний. Даже в Delphi 7. Код же вручную пишется? Явно вызываем CreateWindowW и вперед! Не стоит путать форумы с богадельнями. © Bargest |
#6
|
|||
|
|||
![]() Цитата:
я так понимаю ES_OEMCONVERT это стиль, и по этому его нужно записывать при создании самого Edit Верно? |
#7
|
|||
|
|||
![]() Цитата:
Именно. (10 символов). |
#8
|
|||
|
|||
![]() не погло
Код:
Edit_1:= CreateWindowEx(WS_EX_CLIENTEDGE, 'Edit', nil, WS_CHILD or WS_VISIBLE or ES_WANTRETURN or ES_OEMCONVERT, 50, 33, 100, 30, hWindow, Edit__1, hInstance, nil); |
#9
|
||||
|
||||
![]() Как понимаю, весь сыр-бор из-за желания использовать моноширинный текст? Так ведь на шрифте "Terminal" свет клином не сошёлся. Можно использовать "Lucida Console".
Код:
Edit := CreateWindowEx(WS_EX_CLIENTEDGE, 'Edit', nil, WS_CHILD or WS_VISIBLE or WS_VSCROLL or ES_AUTOHSCROLL or ES_MULTILINE or ES_WANTRETURN, 10, 10, 300, 100, Wnd, 100, hInstance, nil); SendMessage(Edit, EM_REPLACESEL, 0, Integer(PChar('Сообщение: '#13#10))); Font := CreateFont(-12, 0, 0, 0, 0, 0, 0, 0, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH or FF_DONTCARE, 'Lucida Console'); SendMessage(Edit, WM_SETFONT, Font, 0); Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |