Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
#1

Поясните последнюю строку - C++

14.04.2013, 15:15. Просмотров 244. Ответов 2
Метки нет (Все метки)

EZFONT по Петзолдту.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
HFONT                         EasyFontCreate                 (HDC                    Context     ,
                                                              std::string            FontName    ,
                                                              double                 Height      ,
                                                              double                 Width       ,
                                                              int                    Attributes  )
{
 double     HorizontalResolution;
 double     VerticalResolution;
 HFONT      Result;
 LOGFONT    LogicalFont;
 POINT      Point;
 TEXTMETRIC TextMetrics;
 SaveDC(Context);
 SetGraphicsMode(Context, GM_ADVANCED);
 ModifyWorldTransform(Context, NULL, MWT_IDENTITY);
 SetViewportOrgEx(Context, 0, 0, NULL);
 SetWindowOrgEx  (Context, 0, 0, NULL);
 HorizontalResolution=(double)(25.4*((double)GetDeviceCaps(Context, HORZRES)));
 VerticalResolution  =(double)(25.4*((double)GetDeviceCaps(Context, VERTRES)));
 Point.x=(int)(Width *HorizontalResolution*1000/72.0);
 Point.y=(int)(Height*VerticalResolution  *1000/72.0);
 DPtoLP(Context, &Point, 1);
 LogicalFont.lfHeight        =-(int)(((double)abs(Point.y))/1000+0.5);
 LogicalFont.lfWidth         = (int)(((double)abs(Point.x))/1000+0.5);
 LogicalFont.lfEscapement    = 0;
 LogicalFont.lfOrientation   = 0;
 LogicalFont.lfWeight        =(Attributes&IDFABold        )*700;
 LogicalFont.lfItalic        =(Attributes&IDFAItalic   >>1);
 LogicalFont.lfUnderline     =(Attributes&IDFAItalic   >>2);
 LogicalFont.lfStrikeOut     =(Attributes&IDFAStrikeOut>>3);
 LogicalFont.lfCharSet       = 0;
 LogicalFont.lfOutPrecision  = 0;
 LogicalFont.lfClipPrecision = 0;
 LogicalFont.lfPitchAndFamily= 0;
 strcpy(LogicalFont.lpFaceName, FontName.c_str());
. strcpy копирует нуль-терминальную строку. А куда? Буфер вообще существует? Может его выделить? Или лучше скопировать указатель?
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.04.2013, 15:15
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Поясните последнюю строку (C++):

Поясните строку пожалуйста - C++
Предположим все переменныe равны 5. вот есть такие строки product += x++; qu += ++x; я понимаю это так product = product + x++;...

Вывести последнюю строку из файла - C++
Здравствуйте, пишу на этом форуме впервые. Я недавно начал изучать С++, по-этому знаний мало, может-ли кто-нибудь объяснить, как вывести...

Считать последнюю строку файла - C++
Доброго времени суток! есть файл который имеет структуру(ниже), надо считать данные. До последней строки получается. Как быть с последней...

Удалить последнюю строку из файла - C++
Дан непустой текстовый файл. Удалить из него последнюю строку.

Как на экран вывести последнюю строку матрицы - C++
Си или С++

В матрице переместить последнюю строку на место первой - C++
Помогите решить, пожалуйста. а) в данной матрице переместить последнюю строку на место первой, а все другие опустить на один. б) дано...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
w8me
496 / 11 / 1
Регистрация: 10.04.2013
Сообщений: 44
14.04.2013, 15:30 #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
typedef struct tagLOGFONT {
  LONG  lfHeight;
  LONG  lfWidth;
  LONG  lfEscapement;
  LONG  lfOrientation;
  LONG  lfWeight;
  BYTE  lfItalic;
  BYTE  lfUnderline;
  BYTE  lfStrikeOut;
  BYTE  lfCharSet;
  BYTE  lfOutPrecision;
  BYTE  lfClipPrecision;
  BYTE  lfQuality;
  BYTE  lfPitchAndFamily;
  TCHAR lfFaceName[LF_FACESIZE];
} LOGFONT, *PLOGFONT;
по стандарту
C++
1
#define LF_FACESIZE         32
Jupiter
Каратель
Эксперт С++
6553 / 3973 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
14.04.2013, 15:31 #3
Цитата Сообщение от taras atavin Посмотреть сообщение
Или лучше скопировать указатель?
FontName локальная и будет разрушена после выхода из функции
Цитата Сообщение от taras atavin Посмотреть сообщение
А куда? Буфер вообще существует? Может его выделить?
http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
typedef struct tagLOGFONT {
  LONG  lfHeight;
  LONG  lfWidth;
  LONG  lfEscapement;
  LONG  lfOrientation;
  LONG  lfWeight;
  BYTE  lfItalic;
  BYTE  lfUnderline;
  BYTE  lfStrikeOut;
  BYTE  lfCharSet;
  BYTE  lfOutPrecision;
  BYTE  lfClipPrecision;
  BYTE  lfQuality;
  BYTE  lfPitchAndFamily;
  TCHAR lfFaceName[LF_FACESIZE];
} LOGFONT, *PLOGFONT;
lfFaceName
A null-terminated string that specifies the typeface name of the font. The length of this string must not exceed 32 TCHAR values, including the terminating NULL. The EnumFontFamiliesEx function can be used to enumerate the typeface names of all currently available fonts. If lfFaceName is an empty string, GDI uses the first font that matches the other specified attributes.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.04.2013, 15:31
Привет! Вот еще темы с ответами:

Почему последнюю строку из файла выводит дважды? - C++
привет всем! скажите пожалуйста почему последнюю строку выводит 2 раза? FILE *f; if(!(f = fopen("keys.txt","r"))) ...

Как регулярно считывать последнюю строку в файле - C++
Добрый день. Имеется текстовый файл. Он постоянно обновляется и в его конец дописываются строки. Необходимо считывать новую строку...

Переставить местами первую и последнюю строку массива - C++
Помогите пожалуйста найти ошиибкууу :help: Borland C++. Задание: Задан целочисленный массив А размерности NхM. Переставьте местами первую...

Поменять местами побочную диагональ и последнюю строку матрицы - C++
Помогите поменять местами побочную диагональ и последнюю строку матрицы.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru