Шрифт - проблема с русским языком

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
uk8amk
Обычный пользователь
Обычный пользователь
 
Сообщения: 67
Зарегистрирован: 26.07.2007 (Чт) 16:52
Откуда: Tashkent

Шрифт - проблема с русским языком

Сообщение uk8amk » 27.04.2009 (Пн) 14:56

Столкнулся с проблемой правильной передачи параметров шрифта.
Дело в следующем. Редактор. Одна из возможностей - отрисовка шрифта на picturebox'е. Для прорисовки используются функции Glyph. Параметры шрифта от пикчурбокса передаются в Glyph'овые функции и оттуда получаю набор точек по которым все рисуется. Если выставляю шрифт пикчурбокса из IDE VB6, то русские символы нормально рисуются. Но хочется сделать чтобы были всякие разные шрифты и я подключил Commondialog. С помощью диалога шрифт меняется, английские буквы отрисовываются как надо. А вот вместо русских букв выводится какая-то дребедень(как на картинке). Такое впечатление что пикчурбоксу передается совсем не тот набор символов(не русский, а какойто другой).
Вот процедура вызова и получения параметров шрифта от диалога:
Код: Выделить всё
Private Sub CmdFont_Click()
    Editor.CommonDialog3.CancelError = True
    On Error GoTo ErrHandler
    Editor.CommonDialog3.Flags = cdlCFBoth 'cdlCFEffects ' Or
    Editor.CommonDialog3.ShowFont
    With Editor.CommonDialog3
        Editor.PicEdit.FontName = .FontName
        Editor.PicEdit.FontSize = .FontSize
        Editor.PicEdit.FontBold = .FontBold
        Editor.PicEdit.FontItalic = .FontItalic
        Editor.PicEdit.FontUnderline = .FontUnderline
        Editor.PicEdit.FontStrikethru = .FontStrikethru
    End With
ErrHandler:
End Sub

Скажите, что я делаю не так?

И еще один вопрос. Когда первый раз загружается диалоговое окно выбора шрифта, то не выбран не один шрифт. Как сделать чтобы выбирался какой-нибудь шрифт по умолчанию?
Вложения
font.PNG
font.PNG (19.84 Кб) Просмотров: 522

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Re: Шрифт - проблема с русским языком

Сообщение Andrey Fedorov » 27.04.2009 (Пн) 15:42

.Font.CharSet = 204
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Шрифт - проблема с русским языком

Сообщение iGrok » 27.04.2009 (Пн) 15:58

Попробуй Font.Charset = 204.

З.Ы. Опередили. )
label:
cli
jmp label

uk8amk
Обычный пользователь
Обычный пользователь
 
Сообщения: 67
Зарегистрирован: 26.07.2007 (Чт) 16:52
Откуда: Tashkent

Re: Шрифт - проблема с русским языком

Сообщение uk8amk » 27.04.2009 (Пн) 16:07

Спасибо, помогло.
А как charset получить от Commondialog'a, у него нет такого свойства.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Шрифт - проблема с русским языком

Сообщение alibek » 28.04.2009 (Вт) 6:43

Нету. Используй API-шный диалог.
Lasciate ogni speranza, voi ch'entrate.

uk8amk
Обычный пользователь
Обычный пользователь
 
Сообщения: 67
Зарегистрирован: 26.07.2007 (Чт) 16:52
Откуда: Tashkent

Re: Шрифт - проблема с русским языком

Сообщение uk8amk » 28.04.2009 (Вт) 19:13

alibek писал(а):Нету. Используй API-шный диалог.

Пожалуйста ткните носом. Я ранее такое не использовал.

dr.MIG
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1441
Зарегистрирован: 18.12.2004 (Сб) 9:53
Откуда: г.Ярославль

Re: Шрифт - проблема с русским языком

Сообщение dr.MIG » 28.04.2009 (Вт) 19:29

Смотри функцию ChooseFont. Описание и пример смотри в MSDN или в API-Guide.
Salus populi suprema lex


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot, Google-бот и гости: 36

    TopList