На главную

On-line справка по Win32 API

Написать письмо
БЕСПЛАТНАЯ ежедневная online лотерея! Выигрывай каждый день БЕСПЛАТНО!
Список всех статей A-B-C-D-E-F-G-H-I-J-K-L-M-N-O-P-Q-R-S-T-U-V-W-X-Y-Z | Скачать Вниз

Rotating Lines of Text



You can rotate TrueType fonts at any angle. This is useful for labeling charts and other illustrations. The following example rotates a string in 10-degree increments around the center of the client area by changing the value of the lfEscapement and lfOrientation members of the LOGFONT structure used to create the font.

RECT rc;
int angle;
HFONT hfnt, hfntPrev;
LPSTR lpszRotate = "String to be rotated.";

/* Allocate memory for a LOGFONT structure. */

PLOGFONT plf = (PLOGFONT) LocalAlloc(LPTR, sizeof(LOGFONT));


/* Specify a font typeface name and weight. */

lstrcpy(plf->lfFaceName, "Arial");
plf->lfWeight = FW_NORMAL;

/* Retrieve the client-rectangle dimensions. */

GetClientRect(hwnd, &rc);

/*
* Set the background mode to transparent for the

* text-output operation.
*/

SetBkMode(hdc, TRANSPARENT);

/*
* Draw the string 36 times, rotating 10 degrees
* counter-clockwise each time.
*/

for (angle = 0; angle < 3600; angle += 100) {
plf->lfEscapement = angle;
hfnt = CreateFontIndirect(plf);
hfntPrev = SelectObject(hdc, hfnt);
TextOut(hdc, rc.right / 2, rc.bottom / 2,
lpszRotate, lstrlen(lpszRotate));
SelectObject(hdc, hfntPrev);
DeleteObject(hfnt);

}

/* Reset the background mode to its default. */

SetBkMode(hdc, OPAQUE);

/* Free the memory allocated for the LOGFONT structure. */

LocalFree((LOCALHANDLE) plf);



Пригласи друзей и счет твоего мобильника всегда будет положительным!
Предыдущая статья
 
Сайт Народ.Ру Интернет
Следующая статья
Пригласи друзей и счет твоего мобильника всегда будет положительным!

Вращающиеся СТРОКИ текста



Вы можете вращать шрифты TrueType в любом углу. Это полезное для маркирования диаграмм и других иллюстраций. Следующий пример вращает строку в 10- градусных приращениях вокруг центра области клиента изменяя величину lfEscapement и участников lfOrientation структуры LOGFONT использованные, чтобы создавать шрифт.

rc RECT;
int угол;
HFONT hfnt, hfntPrev;
LPSTR lpszRotate = "СТРОКА, чтобы быть вращанн.";

/* Распределите память для structure. LOGFONT */

PLOGFONT plf = (PLOGFONT) LocalAlloc(LPTR, sizeof(LOGFONT));


/* Определите шрифтовой тип шрифта имени и weight. */

lstrcpy(plf->lfFaceName, "Arial");
plf->lfWeight = FW_NORMAL;

/* Извлеките клиента-прямоугольника dimensions. */

GetClientRect(hwnd, &rc);

/*
* Установите способ фона на прозрачный для the

* текстовое-выходное действие.
*/

SetBkMode(hdc, ПРОЗРАЧНЫЙ);

/*
* Сделайте строку 36 раз, вращая 10 градусов
* против часовой стрелки всякий раз, когда.
*/

для (угол = 0; угол < 3600; угол += 100) { plf->lfEscapement = угол;
hfnt = CreateFontIndirect(plf);
hfntPrev = SelectObject(hdc, hfnt);
TextOut(hdc, rc.right / 2, rc.bottom / 2, lpszRotate, lstrlen(lpszRotate));
SelectObject(hdc, hfntPrev);
DeleteObject(hfnt);

}

/* Восстановите способ фона в свой default. */

SetBkMode(hdc, НЕПРОЗРАЧНЫЙ);

/* Освободите память распределенную для structure. LOGFONT */

LocalFree((LOCALHANDLE) plf);



Вверх Version 1.3, Oct 26 2010 © 2007, 2010, mrhx Вверх
 mrhx software  Русский перевод OpenGL  Русский перевод Win32 API
 
Используются технологии uCoz