Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Дефолтовый Фонт 
V
    Опции темы
ShurikA
Дата 6.8.2006, 12:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зануда
***


Профиль
Группа: Завсегдатай
Сообщений: 1364
Регистрация: 29.10.2005
Где: Канада

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



Каким  образом можно достать обьект (CFont) такой какой в данный момент установлен?
То есть тот фонт которым будет отображаться техт в CDC если я ничего не меняю...


--------------------
Если долго мучиться, что нибудь получится...
user posted image
PM MAIL WWW ICQ Skype   Вверх
xTr1m
Дата 6.8.2006, 13:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 692
Регистрация: 9.2.2005
Где: Москва

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



Ну есть такой способ
Код

CFont *font;
font = dc.GetCurentFont();
LOGFONT *log
font->GetLogFont(log);

Ну а в log потом есть все парметры шрифта
PM MAIL WWW ICQ   Вверх
ShurikA
Дата 6.8.2006, 14:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Зануда
***


Профиль
Группа: Завсегдатай
Сообщений: 1364
Регистрация: 29.10.2005
Где: Канада

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



сделал вот так:
Код

//Load default font and load logfont to text manager
CDC *dc = this->GetDC();
CFont *tmpFont = dc->GetCurrentFont();
LOGFONT logFont;
tmpFont->GetLogFont(&logFont);
textMgr->SetLogFont(logFont);
delete tmpFont;
this->ReleaseDC(dc);


Ругается...



--------------------
Если долго мучиться, что нибудь получится...
user posted image
PM MAIL WWW ICQ Skype   Вверх
xTr1m
Дата 6.8.2006, 15:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 692
Регистрация: 9.2.2005
Где: Москва

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



Ругается вот из-зи этого 
Код

delete tmpFont;


Тут ты удаляешь шрифт, который используется в данный момент, поэтому когда ты снова вызываешь
Код

CFont *tmpFont = dc->GetCurrentFont();

то возникает еррор

delete tmpFont; - убери (не бойся никаких утечек памяти не будет)

Это сообщение отредактировал(а) xTr1m - 6.8.2006, 15:23
PM MAIL WWW ICQ   Вверх
vinter
Дата 6.8.2006, 17:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Explorer
****


Профиль
Группа: Завсегдатай
Сообщений: 2735
Регистрация: 1.4.2006
Где: Н.Новгород

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



Цитата

Тут ты удаляешь шрифт, который используется в данный момент, поэтому когда ты снова вызываешь

CFont *tmpFont = dc->GetCurrentFont();    

то возникает еррор

Это тут причем?Еррор возникает потому что delete надо писать если было new.. тут new нигде нету поэтому он освобождает непойми чего...


--------------------
Мой блог
PM MAIL WWW   Вверх
xTr1m
Дата 6.8.2006, 19:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 692
Регистрация: 9.2.2005
Где: Москва

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



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


 




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


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

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