Das ist neugierig auf mich.WM_SETTEXT für STATIC Text aktualisiert den Steuerinhalt nicht
Wenn ich dies:
Helpers.WinApi.SendMessage(nextControl, Helpers.WinApi.WM_SETTEXT, 0, "My String");
Wo nextControl eine STATIC Kontrolle ist (ein Etikett), geht die Steuerung nicht sofort aktualisieren. Die Neugier ist, dass das Steuerelement den geänderten Text nur anzeigt, wenn ich die Alt-Taste drücke. Der geänderte Text wird nicht einmal angezeigt, wenn ich die Steueraktualisierung erzwinge (z. B. beim Minimieren und anschließenden Wiederherstellen des Fensters).
Dies geschieht nur mit STATIC-Steuerung. Mit EDIT-Steuerelementen passiert es nicht.
Wie löst man es?
Jaime
Sie können UpdateWindow() verwenden, um einen ähnlichen Effekt des erzwungenen Fenster-Repaint zu erhalten. – bunglehead
@buldelehead glaube ich nicht. Wenn das ganze Fenster neu gezeichnet wird (wegen Maximierung oder Änderung des Vordergrundfensters), sollte UpdateWindow automatisch aufgerufen werden, und wie ich in der Frage gesagt habe, wurde Control nur aktualisiert, wenn ich die Alt-Taste drücke. Neugierig. – jstuardo
Ich meine UpdateWindow() auf statische Steuerfenster selbst natürlich nicht Ihren gesamten Dialog oder was auch immer Elternteil diese statische hat. Seltsam, dass ich dies mit dem ControlSpy-Testprogramm nicht reproduzieren kann, werden sowohl Version 5 als auch 6 sofort ohne erzwungenes Update aktualisiert. – bunglehead