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ì:
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.codice:INT_PTR nResponse = g_matDlg1.DoModal(); if (nResponse == IDOK) { CPaintDC dc(this ); SendMessage(WM_ERASEBKGND, (WPARAM)dc.m_hDC, 0L ); }
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?

Rispondi quotando