+1 800 256 3608 (toll-free in North America) or +49 7531 90 60 10| service@combit.com

Textobjekt drehen


(Guest) #1

Hallo NG,

kann man irgendwie das Textobjekt in LL14 um 45 Grad drehen?

Grüsse


(Guest) #2

Nope. Nicht daß ich wüßte.

Nichtsdestotrotz kannst Du’s mal mit dem LL_CMND_OBJECT probieren und
bei _bPreDraw=TRUE die World Coordinates einfach so setzen wie Du
willst, und bei _bPreDraw=FALSE wieder auf den alten Wert zurück.
Folgender Code erhebt keine Anspruch auf Funktionstauglichkeit - viel
Spaß beim Experimentieren!!!
static XFORM XFOld; // oops - besser Member der Klasse!
static RECT rcPaintOld;

scLlObject& PS; // vom Callback
float dRot; // Rotationswinkel in Rad (0…2*Pi)

if (PS._bPreDraw)
{
::GetWorldTransform(PS._hPaintDC,&XFOld);
rcPaintOld = PS._rcPaint;

POINT ptCenter =
{
(PS._rcPaint.right - PS._rcPaint.left) / 2,
(PS._rcPaint.bottom - PS._rcPaint.top) / 2
};
XFORM XFRotated =
{
(float)(cos(dRot)),
(float)(sin(dRot)),
(float)(sin(dRot)),
(float)(cos(dRot)),
(float)ptCenter.x,
(float)ptCenter.y
};
SetWorldTransform(*pDevice,&XFRotated);
::OffsetRect(_rcPaint,-ptCenter.x,-ptCenter.y);
// nun wird das Textobjekt um (0,0) herum gezeichnet,
// und durch die World Transformation gedreht und um ptCenter
verschoben
// (hoffe ich zumindest… ;-)))
}
else
{
PS._rcPaint = rcPaintOld;
::SetWorldTransform(PS._hPaintDC,&XFOld);
}

Paulchen

“Hermann” <hermann@tecware-gm…> wrote in message
news:4689412112009182346@combit.net

Hallo NG,

kann man irgendwie das Textobjekt in LL14 um 45 Grad drehen?

Grüsse


(Guest) #3

Danke, werde mal ausprobieren.