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);
- Software for developers
-
Delphi Components
.Net Components
Software for Android Developers
- More information resources
-
MegaDetailed.Net
Unix Manual Pages
Delphi Examples
- Databases for Amazon shops developers
-
Amazon Categories Database
Browse Nodes Database