|
| БЕСПЛАТНАЯ ежедневная online лотерея! Выигрывай каждый день БЕСПЛАТНО! |
|
|
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);
|
|
|
|
| |