The event handler activities are fairly time-consuming, and each already ends with a call to DoEvents() after all widgets in the interface that accept user input have been polled (eachTextfield_Change() or eachCombobox_Change()).
However even after the event handler concludes and control returns to the main Dialog() loop, the active button is not redrawn with a released appearance. It remains pushed until the user pressed another button. And that's the objective: to trigger a redraw when the handler finishes to tell the user processing is done.