Модераторы: feodorv, GremlinProg, xvr, Fixin
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Почему не отображается полужирным? 
:(
    Опции темы
S.A.G.
Дата 17.7.2009, 20:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


не эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1339
Регистрация: 20.7.2006
Где: in ad equate

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



В шаблоне диалога установлен стиль DS_SETFONT и шрифт, отличный от системного, с одним из атрибутов FW_BOLD(полужирное начертание). В шаблоне диалога описаны несколько LTEXT.

Почему при запуске получается тот же Arial 12, но без полужирного начертания? Контролы по умолчанию ведь используют шрифт, выбранный в контекст родительского окна?

Кстати, в MSDN

Цитата
To specify a font for a dialog box other than the default, you must create the dialog box using a dialog box template. In a template resource, use the FONT Statement. In a dialog box template, set the DS_SETFONT or DS_SHELLFONT style and specify a point size and a typeface name.


упоминается только два атрибута, которые можно выставлять в шаблоне диалога - это размер и typeface. Остальное игнорируется?

Это сообщение отредактировал(а) S.A.G. - 17.7.2009, 21:07


--------------------
Вот она задачка: спасти себя от себя самого © Cube
Sometimes good people do evil things © A Simple Plan
PM   Вверх
S.A.G.
Дата 21.7.2009, 19:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


не эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1339
Регистрация: 20.7.2006
Где: in ad equate

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



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

Это сообщение отредактировал(а) S.A.G. - 21.7.2009, 19:23


--------------------
Вот она задачка: спасти себя от себя самого © Cube
Sometimes good people do evil things © A Simple Plan
PM   Вверх
GremlinProg
Дата 21.7.2009, 19:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2706
Регистрация: 9.8.2005
Где: Тюмень

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



Цитата(S.A.G. @  21.7.2009,  21:22 Найти цитируемый пост)
Совсем нет никаких мыслей по поводу того, куда девается FW_BOLD

одна есть:
не указан ли в шаблоне диалога еще и стиль DS_SHELLFONT?
если указан, значит все логично:
Цитата(About Dialog Boxes @ MSDN)

DS_SHELLFONT Indicates that the dialog box should use the system font

отсюда и Arial, и 12 при запуске

Добавлено через 10 минут и 38 секунд
кстати, что значит с одним из атрибутов?
спецификация ресурса имеет строгий порядок:
Цитата(DIALOGEX Resource @ MSDN)

FONT pointsize, typeface, weight, italic, charset

т.е. размер - на первом месте
имя шрифта - на втором
толщина - на третьем (сюда нужно ставить  FW_BOLD)
наклонный - TRUE/FALSE
charset - любое, что рядом с DEFAULT_CHARSET (см. Wingdi.h)

Добавлено через 12 минут и 30 секунд
а, похоже понял
смотри расширенный формат ресурса: http://msdn.microsoft.com/en-us/library/aa381002(VS.85).aspx


--------------------
"Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины."
PM WWW ICQ   Вверх
S.A.G.
Дата 21.7.2009, 20:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


не эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1339
Регистрация: 20.7.2006
Где: in ad equate

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



Цитата(GremlinProg @  21.7.2009,  19:33 Найти цитируемый пост)
не указан ли в шаблоне диалога еще и стиль DS_SHELLFONT?

Нет, не указан.
Цитата(GremlinProg @  21.7.2009,  19:33 Найти цитируемый пост)
похоже понял

Что именно? Я читал уже про расширенные диалоги, там со шрифтами все то же - просто и понятно..

Это сообщение отредактировал(а) S.A.G. - 21.7.2009, 20:19


--------------------
Вот она задачка: спасти себя от себя самого © Cube
Sometimes good people do evil things © A Simple Plan
PM   Вверх
GremlinProg
Дата 21.7.2009, 20:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2706
Регистрация: 9.8.2005
Где: Тюмень

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



Цитата(S.A.G. @  17.7.2009,  22:51 Найти цитируемый пост)
упоминается только два атрибута, которые можно выставлять в шаблоне диалога - это размер и typeface. Остальное игнорируется?

уже конечно понятно, но чтобы вопрос не висел: для DIALOG - только два, для DIALOGEX - уже пять

Цитата(S.A.G. @  21.7.2009,  22:19 Найти цитируемый пост)
Что именно?

понял куда ты смотрел: http://msdn.microsoft.com/en-us/library/aa381003(VS.85).aspx
Цитата

FONT pointsize, typeface

Цитата(S.A.G. @  21.7.2009,  22:19 Найти цитируемый пост)
Я читал уже про расширенные диалоги, там со шрифтами все то же

толщину (weight) можно задать только в расширенном формате: DIALOGEX

мне по прежнему непонятно, куда ты прописываешь FW_BOLD,
покажи код ресурса своего диалога, если не сложно


--------------------
"Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины."
PM WWW ICQ   Вверх
S.A.G.
Дата 21.7.2009, 20:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


не эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1339
Регистрация: 20.7.2006
Где: in ad equate

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



Код

IDD_MAINWND DIALOGEX 0, 0, 160, 40
STYLE DS_SETFONT | DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "IPFormatter"
FONT 12, "Arial", 700, 0, 0xCC
BEGIN
    LTEXT           " Открыть ",IDC_STATIC1,18,16,32,8
    LTEXT           " Преобразовать ",IDC_STATIC2,50,16,54,8
    LTEXT           " Сохранить ",IDC_STATIC3,104,16,39,8
END


Это сообщение отредактировал(а) S.A.G. - 21.7.2009, 20:51


--------------------
Вот она задачка: спасти себя от себя самого © Cube
Sometimes good people do evil things © A Simple Plan
PM   Вверх
GremlinProg
Дата 21.7.2009, 20:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2706
Регистрация: 9.8.2005
Где: Тюмень

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



так-то правильно,
и не утолщает?
а если 900 поставить?
или сменить Areal на какой-нибудь 'Times New Roman'?


--------------------
"Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины."
PM WWW ICQ   Вверх
S.A.G.
Дата 21.7.2009, 21:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


не эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1339
Регистрация: 20.7.2006
Где: in ad equate

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



Цитата(GremlinProg @  21.7.2009,  20:56 Найти цитируемый пост)
а если 900 поставить?

Тоже нет. Еще одна странность. Первоначально в 1 статик-е строка заканчивалась английским текстом и пробелом в конце (сейчас русский текст и пробел в конце). Так вот, раньше пробел в конце пропадал при запуске программы. Убрал англицкий - появился. Вот такие чудеса..


--------------------
Вот она задачка: спасти себя от себя самого © Cube
Sometimes good people do evil things © A Simple Plan
PM   Вверх
GremlinProg
Дата 22.7.2009, 17:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2706
Регистрация: 9.8.2005
Где: Тюмень

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



Цитата(GremlinProg @  21.7.2009,  22:56 Найти цитируемый пост)
или сменить Areal на какой-нибудь 'Times New Roman'?

?

Цитата(S.A.G. @  21.7.2009,  23:02 Найти цитируемый пост)
Первоначально в 1 статик-е строка заканчивалась английским текстом и пробелом в конце (сейчас русский текст и пробел в конце). Так вот, раньше пробел в конце пропадал при запуске программы. Убрал англицкий - появился. Вот такие чудеса..

чудеса тут скорее с набором символов, пятый параметр:
Код

#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

для английского ставь DEFAULT_CHARSET, или ANSI_CHARSET
язык тоже не повредит (в самом начале ресурса):
Код

LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT

или
Код

LANGUAGE LANG_ENGLISH, SUBLANG_DEFAULT

в зависимости от требований


--------------------
"Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины."
PM WWW ICQ   Вверх
S.A.G.
Дата 22.7.2009, 18:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


не эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1339
Регистрация: 20.7.2006
Где: in ad equate

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



Цитата(GremlinProg @  22.7.2009,  17:58 Найти цитируемый пост)
для английского ставь DEFAULT_CHARSET, или ANSI_CHARSET

А если и английский нужен, и русский, и даже китайский?


--------------------
Вот она задачка: спасти себя от себя самого © Cube
Sometimes good people do evil things © A Simple Plan
PM   Вверх
GremlinProg
Дата 22.7.2009, 18:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2706
Регистрация: 9.8.2005
Где: Тюмень

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



Цитата(S.A.G. @  22.7.2009,  20:08 Найти цитируемый пост)
А если и английский нужен, и русский, и даже китайский?

для этого просто повторяй шаблоны в ресурсе по порядку:
Код

LANGUAGE LANG_RUSSIAN, SUBLANG_DEFAULT
//  русские шаблоны
LANGUAGE LANG_ENGLISH, SUBLANG_DEFAULT
//  english templates
...



--------------------
"Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины."
PM WWW ICQ   Вверх
S.A.G.
Дата 22.7.2009, 18:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


не эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1339
Регистрация: 20.7.2006
Где: in ad equate

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



Цитата(GremlinProg @  22.7.2009,  17:58 Найти цитируемый пост)
?

Не, Роман тоже не болд.
Цитата(GremlinProg @  22.7.2009,  18:14 Найти цитируемый пост)
для этого просто повторяй шаблоны в ресурсе по порядку

Так мне надо, чтобы текст LTEXT состоял из русских и английских букав одновременно. И чтобы пробел при этом в конце был.

Это сообщение отредактировал(а) S.A.G. - 22.7.2009, 18:22


--------------------
Вот она задачка: спасти себя от себя самого © Cube
Sometimes good people do evil things © A Simple Plan
PM   Вверх
GremlinProg
Дата 22.7.2009, 18:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2706
Регистрация: 9.8.2005
Где: Тюмень

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



Цитата(S.A.G. @  22.7.2009,  20:16 Найти цитируемый пост)
Не, Роман тоже не болд.

так ты убери код из WM_INITDIALOG, который менят шрифт,
вообще убери все программное, что может на нем сказаться


--------------------
"Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины."
PM WWW ICQ   Вверх
S.A.G.
Дата 22.7.2009, 18:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


не эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1339
Регистрация: 20.7.2006
Где: in ad equate

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



Цитата(GremlinProg @  22.7.2009,  18:20 Найти цитируемый пост)
так ты убери код из WM_INITDIALOG, который менят шрифт,

Все убирал.


--------------------
Вот она задачка: спасти себя от себя самого © Cube
Sometimes good people do evil things © A Simple Plan
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема »


 




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


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

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