Шрифты в контролах

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

Шрифты в контролах

Сообщение AndreyG_80 » 22.03.2006 (Ср) 19:16

Есть контрол TextBox, Label или любой другой у которого есть свойство Font.
В виндовозном диалоге Font есть пункт Script (набор символов) в котором я могу выбрать Cyrilic, Western и т.д..
Как програмно достучаться до этого свойства? Это нужно для многоязычных приложений.

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 22.03.2006 (Ср) 19:21

Как то мутно сформулировано... До чего надо достучатся? До свойства Font, до свойства Script диалога выбора шрифта или до свойства Script шрифта конторола?
Весь мир матрица, а мы в нем потоки байтов!

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 22.03.2006 (Ср) 19:29

в догонку:

Свойству Script диалога выбора шрифта соответствует элемент CharSet (в названии есть еще префикс впереди) структуры CHOOSEFONT, которая используется в этом диалоге. А у Font'а м VB также есть свойство CharSet. Остается присвоить нужное
Весь мир матрица, а мы в нем потоки байтов!

AndreyG_80
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 169
Зарегистрирован: 10.03.2006 (Пт) 13:27

Сообщение AndreyG_80 » 23.03.2006 (Чт) 16:26

Нужно достучаться до свойства Script.
Свойство CharSet - это то что нужно, спасибо.
Вот только где узнать список значений этого свойства?

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

Сообщение alibek » 23.03.2006 (Чт) 16:45

У него нет списка значений. Значения совпадают с константами для фонтов, для кириллицы это 204.
Lasciate ogni speranza, voi ch'entrate.

AndreyG_80
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 169
Зарегистрирован: 10.03.2006 (Пт) 13:27

Сообщение AndreyG_80 » 23.03.2006 (Чт) 18:01

Хорошо, спасибо.
Вот константы шрифтов:

Cyrilic - 204
Western - 0
Hebrew - 177
Arabic - 178
Greek - 161
Turkish - 162
Baltic - 186
Central European - 238
Vietnamese - 163

P.S. Почему-то в MSDN-е я не нашол справки по этому свойству (Charset)

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 23.03.2006 (Чт) 18:19

есть она там, справка эта... а константы в заголовочных файлах
Весь мир матрица, а мы в нем потоки байтов!

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

Сообщение alibek » 24.03.2006 (Пт) 8:20

0 - это не Western (Western Europe, кстати), это значение по умолчанию. А Western это 237.
Lasciate ogni speranza, voi ch'entrate.

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 24.03.2006 (Пт) 11:58

Для полной и окончательной точности кусок из файла wingdi.h
Код: Выделить всё
#define ANSI_CHARSET            0
#define DEFAULT_CHARSET         1
#define SYMBOL_CHARSET          2
#define SHIFTJIS_CHARSET        128
#define HANGEUL_CHARSET         129
#define HANGUL_CHARSET          129
#define GB2312_CHARSET          134
#define CHINESEBIG5_CHARSET     136
#define OEM_CHARSET             255
#if(WINVER >= 0x0400)
#define JOHAB_CHARSET           130
#define HEBREW_CHARSET          177
#define ARABIC_CHARSET          178
#define GREEK_CHARSET           161
#define TURKISH_CHARSET         162
#define VIETNAMESE_CHARSET      163
#define THAI_CHARSET            222
#define EASTEUROPE_CHARSET      238
#define RUSSIAN_CHARSET         204

#define MAC_CHARSET             77
#define BALTIC_CHARSET          186

#endif /* WINVER >= 0x0400 */
Весь мир матрица, а мы в нем потоки байтов!


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

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

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 111

    TopList