Пример #1
0
 /// <summary>
 /// 重绘方法
 /// </summary>
 /// <param name="clipRect">裁剪区域</param>
 public void onPaint(FCRect clipRect)
 {
     lock (this) {
         if (m_container != null)
         {
             FCSize displaySize = m_native.DisplaySize;
             double scaleFactorX = 1, scaleFactorY = 1;
             FCSize clientSize = getClientSize();
             if (m_native.AllowScaleSize)
             {
                 if (clientSize.cx > 0 && clientSize.cy > 0)
                 {
                     FCSize scaleSize = m_native.ScaleSize;
                     scaleFactorX = (double)(clientSize.cx) / scaleSize.cx;
                     scaleFactorY = (double)(clientSize.cy) / scaleSize.cy;
                 }
             }
             Graphics g = m_container.CreateGraphics();
             m_native.Paint.setScaleFactor(scaleFactorX, scaleFactorY);
             m_native.Paint.beginPaint(g.GetHdc(), new FCRect(0, 0, clientSize.cx, clientSize.cy), clipRect);
             m_native.onPaint(clipRect);
             m_native.Paint.endPaint();
             g.Dispose();
         }
     }
 }