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. 

Reply via email to