Come fermare un MFC / controllo di win32 riverniciatura
-
03-10-2019 - |
Domanda
Ho un CRichEditCtrl, e un algoritmo funziona sui suoi contenuti in-place, scorrendo i contenuti e apportare modifiche. Questo sembra causare ri-paaint ogni volta, che provoca sfarfallio e un tempo notevole per completare l'operazione, soprattutto se il controllo inizia a scorrere. Mi chiedevo se c'è un modo pulito per me per fermarlo ridipingere per un periodo. In realtà è una sottoclasse personalizzata di CRichEditCtrl in uso in modo stavo pensando qualcosa del tipo:
void MyCustomEditCtrl::DoAlgorithm()
{
enableRepaint(false);
...
//to the actual work
...
enableRepaint(true);
}
Qual è l'approccio più pulita? Un gestore personalizzato on-vernice, che non fa nulla quando un'operazione è in corso? O può ridipingere effettivamente essere disattivato?
Soluzione
Non ho mai usato la funzione, ma sembra che si desidera guardare CWnd :: SetRedraw .