これは私には好奇心です。STATICテキストのWM_SETTEXTは制御内容を更新しません。
私はこれを使用する場合:nextControlはSTATICコントロール(ラベル)です
Helpers.WinApi.SendMessage(nextControl, Helpers.WinApi.WM_SETTEXT, 0, "My String");
を、コントロールがすぐに更新されません。好奇心は、Altキーを押したときだけ、コントロールが変更されたテキストを表示することです。コントロールを強制的に更新すると、変更されたテキストが表示されません(たとえば、ウィンドウを最小化してから元に戻すなど)。
これは、STATICコントロールでのみ発生します。 EDITコントロールでは、それは起こりません。
どうすれば解決できますか?
私が集合した後、ラベルの幅を変更することで解決しているハイメ
UpdateWindow()を使用すると、強制的なウィンドウ再描画の同様の効果を得ることができます。 – bunglehead
@bunglehead私はそうは思わない。全体のウィンドウが再描画されると(前景ウィンドウを最大化または変更するため)、UpdateWindowを自動的に呼び出す必要があります。私が質問したように、Altキーを押したときにのみコントロールがリフレッシュされます。好奇心。 – jstuardo
私は静的コントロールウインドウ自体のUpdateWindow()を意味しますが、ダイアログ全体やこのスタティックな親のものではありません。私がControlSpyテストプログラムでこれを再現することができないという不思議な点は、バージョン5と6の両方が強制的なアップデートなしで直ちにアップデートされることです。 – bunglehead