Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / FoxPro, Visual FoxPro Новый топик    Ответить
 Шрифты меню по умолчанию  [new]
Igornew
Member

Откуда:
Сообщений: 40
Можно ли в начале программы задать шрифт всех создаваемых в ней меню, контекстного меню, что бы не описывать их каждый раз везде где идёт программное создание меню.
Необходимость возникла, по причине , что на некоторых компах контекстные меню отображаются абракодаброй, в то время как основное - нормально.
18 июл 11, 23:32    [10992318]     Ответить | Цитировать Сообщить модератору
 Re: Шрифты меню по умолчанию  [new]
Dag
Member

Откуда:
Сообщений: 842
Можно попытаться использовать директивы препроцессора.
19 июл 11, 00:10    [10992400]     Ответить | Цитировать Сообщить модератору
 Re: Шрифты меню по умолчанию  [new]
Dima T
Member

Откуда:
Сообщений: 15279
Igornew
Необходимость возникла, по причине , что на некоторых компах контекстные меню отображаются абракодаброй, в то время как основное - нормально.

Есть такая болезнь у фокса. Некоторые шрифты фокс "не переваривает". Проблема из-за настройки стиля рабочего стола виндовса.
Лечится выбором стандартного стиля рабочего стола.
19 июл 11, 07:39    [10992658]     Ответить | Цитировать Сообщить модератору
 Re: Шрифты меню по умолчанию  [new]
Sergey Sizov
Member

Откуда:
Сообщений: 1547
Dima T
Igornew
Необходимость возникла, по причине , что на некоторых компах контекстные меню отображаются абракодаброй, в то время как основное - нормально.

Есть такая болезнь у фокса. Некоторые шрифты фокс "не переваривает".
Не только у фокса. И фокс шрифтами в данном случае не занимается и потому ему даже переваривать нечего.
Фокс пользуется родной виндовой системой меню, которую уже мало кто использует, перейдя на текстовые тулбары. Так вот эта система и пакостит на экзотических шрифтах. Но способ лечения правильный, изменить настройки рабочего стола или по крайней мере шрифт меню в этих настройках.
19 июл 11, 10:33    [10993130]     Ответить | Цитировать Сообщить модератору
 Re: Шрифты меню по умолчанию  [new]
Dima T
Member

Откуда:
Сообщений: 15279
Sergey Sizov
Dima T
пропущено...

Есть такая болезнь у фокса. Некоторые шрифты фокс "не переваривает".
Не только у фокса. И фокс шрифтами в данном случае не занимается и потому ему даже переваривать нечего.
Фокс пользуется родной виндовой системой меню, которую уже мало кто использует, перейдя на текстовые тулбары. Так вот эта система и пакостит на экзотических шрифтах.

Считаю что это какая-то недоработка внутри фокса. На том же компе находится куча прог у которых с меню все в порядке, т.е. набор русских букв все-таки присутствует.
Как понимаю устройство шрифтов - внутри одного шрифта есть различные наборы изображений одних и тех же кодов символов, в кириллическом наборе русские буквы, в латинском и пр. на этом месте кракозябры. Подозреваю что фокс берет первый попавшийся, кириллица не всегда первой попадается.
19 июл 11, 10:50    [10993231]     Ответить | Цитировать Сообщить модератору
 Re: Шрифты меню по умолчанию  [new]
Sergey Sizov
Member

Откуда:
Сообщений: 1547
Dima T
Sergey Sizov
пропущено...
Не только у фокса. И фокс шрифтами в данном случае не занимается и потому ему даже переваривать нечего.
Фокс пользуется родной виндовой системой меню, которую уже мало кто использует, перейдя на текстовые тулбары. Так вот эта система и пакостит на экзотических шрифтах.

Считаю что это какая-то недоработка внутри фокса. На том же компе находится куча прог у которых с меню все в порядке, т.е. набор русских букв все-таки присутствует.
Дима, ты можешь понять одну простую вещь - в разных прогах меню делается разными способами? И то , что у других меню рисуется хорошо никоим обрахзом не относится к фоксу. Он использует другой механизм. В котором он сам никак не участвует. Он просто дает указание винде, а не какому ствоему внутреннему механизму отображения меню, сделать меню из вот такого вот набра данных и все. Как это будет отображаться решает не фокс, а винда. Это понятно или нет?
19 июл 11, 11:58    [10993856]     Ответить | Цитировать Сообщить модератору
 Re: Шрифты меню по умолчанию  [new]
Dima T
Member

Откуда:
Сообщений: 15279
Sergey Sizov
Dima T
пропущено...

Считаю что это какая-то недоработка внутри фокса. На том же компе находится куча прог у которых с меню все в порядке, т.е. набор русских букв все-таки присутствует.
Дима, ты можешь понять одну простую вещь - в разных прогах меню делается разными способами?

Все проги используют функции WinAPI для управления меню.

Согласен что WinAPI можно по-разному использовать, о чем я и говорю. Т.к. фокс позволяет изнутри менять шрифт меню, следовательно и для построения меню он криво использует WinAPI в части выбора языка шрифта.

Sergey Sizov
И то , что у других меню рисуется хорошо никоим обрахзом не относится к фоксу. Он использует другой механизм. В котором он сам никак не участвует. Он просто дает указание винде, а не какому ствоему внутреннему механизму отображения меню, сделать меню из вот такого вот набра данных и все. Как это будет отображаться решает не фокс, а винда. Это понятно или нет?

Сам-то понял чего написал? Фокс ни при чем, виноват виндовс, в том что фокс неправильно ему задачу поставил

Если есть опыт программирования на голом WinAPI - можно продолжить обсуждение в форуме по С++, для них эта тема ближе.
19 июл 11, 12:39    [10994184]     Ответить | Цитировать Сообщить модератору
 Re: Шрифты меню по умолчанию  [new]
Sergey Sizov
Member

Откуда:
Сообщений: 1547
Dima T
Sergey Sizov
пропущено...
Дима, ты можешь понять одну простую вещь - в разных прогах меню делается разными способами?

Все проги используют функции WinAPI для управления меню.
Упертый , однако... :)
Есть разные меню. Подавляющее большиство соверменных программ использую свое собственно, саморисованное, самодельное и т.д. меню или что-то на него похожее.
А вот фокс использует всроенное в винду, системное, еще со времен 3.0 ресурсное меню. Которое рисует сам винда.
Да, в обоих случайх используетсмя WINAPI, только разные функции.

Согласен что WinAPI можно по-разному использовать, о чем я и говорю. Т.к. фокс позволяет изнутри менять шрифт меню,
Фокс позволяет менять шрифт подменю, а не основной линейки ибо эту линейку как раз сама винда и рисует.
следовательно и для построения меню он криво использует WinAPI в части выбора языка шрифта.
А вот и нифига. WinApi он использует правильно, только не то, про которое Вы думаете.

Sergey Sizov
И то , что у других меню рисуется хорошо никоим обрахзом не относится к фоксу. Он использует другой механизм. В котором он сам никак не участвует. Он просто дает указание винде, а не какому ствоему внутреннему механизму отображения меню, сделать меню из вот такого вот набра данных и все. Как это будет отображаться решает не фокс, а винда. Это понятно или нет?

Сам-то понял чего написал? Фокс ни при чем, виноват виндовс, в том что фокс неправильно ему задачу поставил
Я то понял, в вот некоторые видимо так и непоняли о чем я тут твержу. Фокс задачу поставил правильно, и винда свою задачу поняла правильно, просто использованные функции винды старые и не совсем доработанные под юникод в силу редкого использования. Сейчас используют совершенно другое.

Если есть опыт программирования на голом WinAPI - можно продолжить обсуждение в форуме по С++, для них эта тема ближе.
Есть, но смысла никакого. В качестве наводки - меню как ресурс приложения.
19 июл 11, 15:35    [10995583]     Ответить | Цитировать Сообщить модератору
 Re: Шрифты меню по умолчанию  [new]
Dima T
Member

Откуда:
Сообщений: 15279
Sergey Sizov
Есть разные меню. Подавляющее большиство соверменных программ использую свое собственно, саморисованное, самодельное и т.д. меню или что-то на него похожее.

Кроме прог оформленных типа офиса 2010 есть еще блокнот, калькулятор, паинт и т.п. (в них все нормально с меню когда фокс глючит)

Sergey Sizov
А вот фокс использует всроенное в винду, системное, еще со времен 3.0 ресурсное меню. Которое рисует сам винда.

Ресурсы-то каким боком тут прицепились? В ресурсы EXE можно вставить статичное меню. Если меню создается в процессе работы приложения, то его никак в ресурсы не сохранишь. Оно программно генерится во время работы. Примерно так

Sergey Sizov
Фокс позволяет менять шрифт подменю, а не основной линейки ибо эту линейку как раз сама винда и рисует.

Ты этот глюк давно сам наблюдал? Там именно так и происходит - линейка по-русски, а в подменю кракозябры.
Я так и писал - фокс выбирает шрифт и язык шрифта даже если шрифт явно не задан в коде, и выбирает не тот который надо.

Sergey Sizov
просто использованные функции винды старые и не совсем доработанные под юникод в силу редкого использования

Был бы юникод - проблемы бы не было. Фокс ANSI-версии вызовов WinAPI использует.
Возьми утилиту depend (из 6-й в.студии) и открой в ней VFP9.EXE, она показывает какие WinAPI функции используются приложением.
Там есть: InsertMenuA, InsertMenuItemA, а вот юникодные аналогов нет: InsertMenuW, InsertMenuItemW, т.е. фокс их не использует.

PS Предлагаю сворачивать эту полемику, то что глюк есть - наши мнения совпадают, то что лечить можно настройкой рабочего стола - тоже совпадают. А в чем его причина - это не особо важно, исправить его все равно не сможем, разве что понимать причины для общего развития.
19 июл 11, 16:12    [10995929]     Ответить | Цитировать Сообщить модератору
Все форумы / FoxPro, Visual FoxPro Ответить