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);
Прокрутка текста относительно точки
Мне надо сделать так, чтобы некий текст прокрутился относительно некой точки компонента Image на 360 градусов. Я не могу понять как это реализовать по той причине, что функция TextOut не задает угла поворота или конечкой точки. Помогите реализовать это. Спасибо.
Цитата:
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.
Код:
[C++ Error] Unit1.cpp(37): E2451 Undefined symbol 'hwnd'
[C++ Error] Unit1.cpp(37): E2227 Extra parameter in call to _fastcall TCustomForm::GetClientRect()
[C++ Error] Unit1.cpp(45): E2451 Undefined symbol 'hdc'
В чем проблема?
Цитата:
[C++ Error] Unit1.cpp(37): E2451 Undefined symbol 'hwnd'
[C++ Error] Unit1.cpp(37): E2227 Extra parameter in call to _fastcall TCustomForm::GetClientRect()
[C++ Error] Unit1.cpp(45): E2451 Undefined symbol 'hdc'
Ошибка: Неопределен символ hwnd
Ошибка: Лишние параметры в вызове TCustomForm::GetClientRect()
Ошибка: Неопределен символ hdc
hwnd можно заменить на Handle - это хендл окна
hdc - на Canvas->Handle - это хендл контекста рисования
А перед GetClientRect(hwnd, &rc) поставь ::
Код:
::GetClientRect(hwnd, &rc);
Это сменит область видимости на глобальную
P.S.: Проверить свои предположения не могу за отссутствием Borland C++ Builder
Цитата: AVS
Мне надо сделать так, чтобы некий текст прокрутился относительно некой точки компонента Image на 360 градусов.