Модераторы: diadiavova, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вопрос про шрифты, как использовать не установленные шрифты 
:(
    Опции темы
arcangel
Дата 20.4.2008, 22:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 30.3.2008

Репутация: нет
Всего: нет



Подскажите как можно в приложении использовать неустановленные шрифты? Файл шрифта лежит в папке с приложением.
PM MAIL   Вверх
popzow
Дата 29.4.2008, 11:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 21.11.2006

Репутация: нет
Всего: нет



Код

    Private Const HWND_BROADCAST = &HFFFF&
    Private Const WM_FONTCHANGE = &H1D
    Private Declare Function AddFontResource Lib "gdi32" Alias _
                         "AddFontResourceA" (ByVal lpFileName As String) As _
                         Integer
 
    Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
                         (ByVal hwnd As Integer, ByVal wMsg As Integer, ByVal _
                         wParam _
                                 As Integer, ByVal lParam As Integer) As Integer
 
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As _
      System.EventArgs) Handles Button1.Click
        Dim ret As Integer
        MsgBox(System.Windows.Forms.Application.StartupPath)
        ret = AddFontResource(System.Windows.Forms.Application.StartupPath & _
          "\ChemistryGlyphs.ttf")
        If ret > 0 Then
            SendMessage(HWND_BROADCAST, WM_FONTCHANGE, 0, 0)
        End If
    End Sub

PM MAIL   Вверх
arcangel
Дата 30.4.2008, 00:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 30.3.2008

Репутация: нет
Всего: нет



Спасибо огромное за ответ, но к сожалению это не решает проблему. Не установленный шрифт появляется во всех диалоговых окнах шрифта, но при попытке сменить шрифт на новый пишет ошибку "Only True Type fonts are suported. This is not True Type font.", хотя использую шрифт .ttf.
А при создении вручную dim f as font = new font("имя шрифта.tff",25, FontStyle.Bold, GraphicsUnit.Pixel, 0) создается другой шрифт (который по умолчанию). Может я не так обращаюсь к нему?
PM MAIL   Вверх
popzow
Дата 30.4.2008, 10:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 21.11.2006

Репутация: нет
Всего: нет



Всё правильно .Net поддерживает только TrueType а остальные (OpenType) нет. Имя шрифта не равно названию шрифта то есть использовать типа: dim f as font = new font("имя шрифта.tff",25, FontStyle.Bold, GraphicsUnit.Pixel, 0) не верно а нужно- dim f as font = new font("имя шрифта",25, FontStyle.Bold, GraphicsUnit.Pixel, 0) причем "имя шрифта" это не название файла шрифта, а его имя.

Добавлено через 10 минут и 4 секунды
Кстати так ты вводишь шрифт в систему. он виден во всех диалогах, то есть не только в твоей программе.

Код

Private Declare Function RemoveFontResource Lib "gdi32.dll" _
  Alias "RemoveFontResourceA" ( _
  Byval lpFileName As String) As integer

Так ты можешь его удалить из системы.

Это сообщение отредактировал(а) popzow - 30.4.2008, 10:29
PM MAIL   Вверх
arcangel
Дата 30.4.2008, 20:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 30.3.2008

Репутация: нет
Всего: нет



Да сорь опечатался с ".ttf". Пробовал оба варианта, но ничего. Все равно шрифт по умолчанию. Причем он виден везде, только использовать его не могу. Даже тупо в блокноте выбиаю такойже шрифт и вылетает таже ошибка. У меня такое было когда я просто устанавливал шрифты (кидал в папку шрифты). Тогда была таже проблема, но после перезагрузки системы они срабатывали. Может это баг какой, работаю за NF2.0
PM MAIL   Вверх
popzow
Дата 30.4.2008, 22:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 21.11.2006

Репутация: нет
Всего: нет



Возми открой фаил и прочти его имя шрифта оно находиться наверху оно может быть одинаковым с названием файла, но это не обязательно так. Используй его как название шрифта. Должно получиться. Или еще лутше как его имя в диалоге написанно так его и используй.

Это сообщение отредактировал(а) popzow - 30.4.2008, 23:06
PM MAIL   Вверх
arcangel
Дата 2.5.2008, 02:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 30.3.2008

Репутация: нет
Всего: нет



Меня не так поняли, шрифт добавляется, его везде видно и имя я правильное использую.
Проверял брал один шрифт, кидал в папку "шрифты", пробую использовать - не получается, перезапускаю систему - получается. Беру второй шрифт - добавляю как описано выше, пробую исользовать - не получается, таже ошибка, что и с установкой первого шрифта, до перезагрузки системы. Я нигде им воспользоваться не могу. Мне почему то нужна перезагрузка системы для использования шрифтов.

Принт скрин с ошибкой, там и имя шрифта и в диалогов окне, это то что получается до перезагрузки.

Это сообщение отредактировал(а) arcangel - 2.5.2008, 02:42

Присоединённый файл ( Кол-во скачиваний: 7 )
Присоединённый файл  PrintScreen.jpg 81,77 Kb
PM MAIL   Вверх
popzow
Дата 2.5.2008, 12:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 21.11.2006

Репутация: нет
Всего: нет



И не получиться .Net поддерживает только TrueType- шрифты.
http://channel9.msdn.com/ShowPost.aspx?PostID=67248

Это сообщение отредактировал(а) popzow - 2.5.2008, 12:31
PM MAIL   Вверх
arcangel
Дата 2.5.2008, 18:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 8
Регистрация: 30.3.2008

Репутация: нет
Всего: нет



Так шрифт то True Type smile , даже на пс видно
PM MAIL   Вверх
popzow
Дата 3.5.2008, 09:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 21.11.2006

Репутация: нет
Всего: нет



Ну тогда не знаю. У меня всё нормально получалось. 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума VB .NET
diadiavova
  • Прежде чем задать вопрос, воспользуйтесь поиском: возможно Ваш вопрос уже обсуждался и на него был получен ответ.
  • Если такой же вопрос не найден, не стоит задавать свой вопрос в любую тему, создайте новую.
  • Заголовок темы должен отображать ее суть.
  • Содержание поста должно описывать проблему понятно, но в то же время, по возможности, лаконично. Сначала следует описать суть вопроса, потом можно привести пример кода, не вынуждайте других участников угадывать в чем Ваша проблема - телепатов здесь нет.
  • Будьте взаимно вежливы и дружелюбны.
  • При оформлении сообщений используйте форматирование, примеры кода заключайте в теги [CODE=vbnet][/CODE].
  • Также ознакомьтесь с общими правилами, действующими на всем форуме.
  • Если вопрос решен, не забывайте помечать тему решенной(вверху темы есть ссылка). Кроме того, если Вы хотите отблагодарить участников, оказавших помощь в решении, можно повысить им репутацию, в случае, если у Вас менее 100 сообщений в форуме и функция изменения репутации Вам недоступна, можете написать сюда.
  • Общие вопросы по программированию на платформе .NET обсуждаются здесь.
  • Литература по VB .NET обсуждается здесь.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, diadiavova.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB .NET | Следующая тема »


 




[ Время генерации скрипта: 0.0475 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.