Titolo TLabel e TGroupbox Flicker su Ridimensiona

  • Quindi, ho un’applicazione che carica diversi plugin e crea una nuova scheda su un TPageControl per ognuno.
  • Ad ogni DLL è associato un TForm.
  • I moduli vengono creati con il loro genitore hWnd come nuovo TTabSheet.
  • Dal momento che i TTabSheets non sono un genitore del modulo per quanto riguarda VCL ( non volevo utilizzare RTL dinamico e plug-in realizzati in altre lingue ) Devo gestire le ridimensionamenti manualmente. Lo faccio come di seguito:

    var ChildHandle : DWORD; begin If Assigned(pcMain.ActivePage) Then begin ChildHandle := FindWindowEx(pcMain.ActivePage.Handle, 0, 'TfrmPluginForm', nil); If ChildHandle > 0 Then begin SetWindowPos(ChildHandle, 0, 0, 0, pcMain.ActivePage.Width, pcMain.ActivePage.Height, SWP_NOZORDER + SWP_NOACTIVATE + SWP_NOCOPYBITS); end; end; 

Ora, il mio problema è che quando l’applicazione viene ridimensionata, tutti i TGroupBox e i TLabels all’interno dello sfarfallio di TGroupBoxes. I TLabels che non si trovano all’interno di TGroupbox sono perfetti e non sfarfallano.

Cose che ho provato:

  • WM_SETREDRAW seguito da RedrawWindow
  • ParentBackground su TGroupBoxes e TLabels impostato su False
  • DoubleBuffer: = True
  • LockWindowUpdate ( Sì, anche se so che è molto sbagliato )
  • Trasparente: = Falso ( anche sovrascrivendo crea per modificare ControlState )

Qualche idea?