/// <summary> /// 更新编辑器 /// </summary> /// <param name="parent">控件</param> private void updateScintilla() { FCNative native = m_parentDiv.Native; if (native != null) { if (m_parentDiv.isPaintVisible(m_parentDiv)) { ShowWindow(Handle, SW_SHOWNOACTIVATE); float scaleFactorX = 1, scaleFactorY = 1; FCSize scaleSize = native.ScaleSize; WinHostEx winHost = native.Host as WinHostEx; Control control = Control.FromHandle(winHost.HWnd); FCSize size = new FCSize(control.ClientSize.Width, control.ClientSize.Height); if (size.cx > 0 & size.cy > 0) { scaleFactorX = (float)scaleSize.cx / size.cx; scaleFactorY = (float)scaleSize.cy / size.cy; } int x = (int)(native.clientX(m_parentDiv) / scaleFactorX); int y = (int)(native.clientY(m_parentDiv) / scaleFactorY); int cx = (int)(m_parentDiv.Width / scaleFactorX); int cy = (int)(m_parentDiv.Height / scaleFactorY); MoveWindow(Handle, x, y, cx, cy, true); } else { ShowWindow(Handle, SW_HIDE); } } }