Поиск:

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


Бывалый
*


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

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



У меня есть SDI приложение на базе CRichEditView. В CRichEditView в функции OnInitialUpdate() я меняю шрифт.

Код

cf.yHeight = 240;
cf.dwMask = CFM_FACE|CFM_BOLD|CFM_SIZE ;
cf.dwEffects = cf.dwEffects&~CFM_BOLD;
            
strcpy_s(cf.szFaceName,32, TEXT("Times New Roman"));
SetCharFormat(cf);


Где cf глобальная для класса переменная. Так вот все нормально- шрифт TimeNewRoman когда набираю текст. Но стоит мне переключить раскладку клавиатуры с украниского на русский или с русского на английский - шрифт меняеться- становиться какой -то другой, вроде Arial и размером по- больше. Вобщим не TimeNewRoman точно- не то что я установил. 

Кроме того у меня при запуске приложения устанавливаеться укр. раскладка клавиатуры- может это имеет значение.
Код

InitInstance()
{
......................
DWORD dwLang = MAKELANGID(LANG_UKRAINIAN, SUBLANG_DEFAULT);
CString strMl;
strMl.Format(_T("00000%x"), dwLang);
TCHAR szLang[10];

lstrcpy(szLang, strMl);
HKL kl;
kl=LoadKeyboardLayout(szLang,KLF_ACTIVATE|KLF_SETFORPROCESS);


Почему когда меняю раскладку меняеться у меня шрифт, причем весь набранный шрифт шрифтом TimeNewRoman становиться Arial. Как мне сделать что бы этого не было?
PM MAIL   Вверх
Albor
Дата 13.12.2010, 07:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



SetCharFormat() изменяет формат у текущего выделения. Попробуй использовать GetRichEditCtrl( ).SetDefaultCharFormat().
PM MAIL ICQ   Вверх
kurlyak
Дата 16.12.2010, 10:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



все равное таже фигня
PM MAIL   Вверх
Albor
Дата 16.12.2010, 12:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(kurlyak @  16.12.2010,  10:37 Найти цитируемый пост)
все равное таже фигня 

Страно так, что аж интересно smile
Установил себе украинский язык, создал SDI приложение, добавил следующий код:
Код

void CSDI_RichView::OnInitialUpdate()
{
    CRichEditView::OnInitialUpdate();


    // Set the printing margins (720 twips = 1/2 inch)
    SetMargins(CRect(720, 720, 720, 720));

    CHARFORMAT cf={0};
    cf.cbSize = sizeof(cf);
    cf.yHeight = 440;
    cf.dwMask = CFM_FACE|CFM_BOLD|CFM_SIZE ;
    cf.dwEffects = cf.dwEffects&~CFM_BOLD;

    wcscpy_s(cf.szFaceName,32, TEXT("Times New Roman"));

    GetRichEditCtrl().SetDefaultCharFormat(cf);
}

И всё работает как надо. В InitInstance() добавил ваш код, при старте устанавливается украинский, но изменение раскладки не влияет на форматирование текста.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




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


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

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