Hi Christian,
Thank you very much for your guid. I still have some questions about it.
1. In order to get a single charactor, I tried to change the code in the
Writer::Impl_writeText()
if( bRTL || (nScriptType != ScriptType::LATIN) )
sal_uInt32 i;
for( i = 0; i < nLen; i++ )
{
mpVDev->GetTextOutline( aPolyPoygon, rText.GetChar(_uInt16(i)), 0, 0,
(USHORT)nLen, TRUE, nWidth, pDXArray );
//mpVDev->GetTextOutline( aPolyPoygon, rText, 0, 0, (USHORT)nLen, TRUE,
nWidth, pDXArray );
aPolyPoygon.Translate( rPos );
Impl_writePolyPolygon( aPolyPoygon, sal_True, aTextColor, aTextColor );
}
but after I debuging it I found that the charactor exported is lapped over.
e.g. I exported "abc", but "a""b""c" is lapped over in one place and cannot be
seen clearly.
2. I find the aB2DPolyPolyVector stores the single complex text, can I define
the
Polygon (in the aB2DPolyPolyVector) with a flash id? But the Polygon (in the
aB2DPolyPolyVector)
has not been Translated. So can I define the Polygon before
aPolyPoygon.Translate( rPos
);?
3. The member varible in class PolyPolygon is a pointer
ImplPolyPolygon* mpImplPolyPolygon;
So it is no use to overload "==" to compare two pointer as may be two
PolyPolygons
are not stored in one memory area but they are equal.
The member varible of class ImplPolyPolygon is
SVPPOLYGON* mpPolyAry;
ULONG mnRefCount;
USHORT mnCount;
USHORT mnSize;
USHORT mnResize;
Maybe we can overload "==" in this class, but what is SVPPOLYGON? It is a
pointer too. How can I solve this problem?
Looking forward to your reply:)
Sincerely,
Fang
Fang Yaqiong [EMAIL PROTECTED]
2007-05-28
Regards&Thanks!
Tel:010-5157-0010 Ext.6202
Beijing Redflag CH2000 Software Co., Ltd.