In una applicazione grafica con OpenGL ho inserito una dialog per settare l'aspetto degli oggetti (materiali e luci) renderizzati. Alla chiusura del dialogBox, con il tasto OK, l'aspetto degli oggetti non risultava ancora aggiornato, ma appena roteavo la vista, o la zummavo, allora le nuove impostazioni si concretizzavano nel rendering degli oggetti.

Ho pensato di lanciare il messaggio WM_ERASEBKGND, così:

codice:
	INT_PTR nResponse = g_matDlg1.DoModal();
	if  (nResponse == IDOK)
	{
		CPaintDC dc(this ); 
		SendMessage(WM_ERASEBKGND, (WPARAM)dc.m_hDC, 0L ); 
	}
Questa volta, dopo aver ricompilato, le nuove impostazioni comparivano regolamente con la chiusura del box. Tutto sembrava dipendere da WM_ERASEBKGND, visto che con UpdateWindow() non avevo ottenuto risultati.
Per Pura curiosità ho voluto riportare il codice alla sua condizione precedente. Il risultato è che ora funziona lostesso. Ho provato a fare un "Rebuild solution", ma funziona regolarmente con lo stesso ed esatto codice che prima mi dava il problema del mancato aggiornamento della finestra.
Sono cose che capitano, o dovrenbbe essere strano?