4

モードがオンの場合、標準の「Caps Lock is On」バルーンが表示されるように設定しTEditます。その標準のバルーンは、エディターがフォーカスされているとき、またはモードがオンになっているときにのみ表示されますが、フォーカスはそのエディターにありました。PasswordChar*Caps LockCaps Lock

私のパスワード エディターは、アプリケーションの最初の焦点を絞ったコントロールです。そのため、以前Caps Lockにモードをオンにしてアプリケーションを起動すると、パスワード エディターがフォーカスを失い、再びフォーカスされるまでバルーンが表示されません。ユーザーは、ユースケースの半分でそのバルーンを見ない可能性があります!

フォーカスを切り替えることなく、アプリケーションの起動時にこの「Caps Lock is On」バルーンを強制することはできますか?

4

1 に答える 1

4

WM_KILLFOCUS解決策はandを呼び出すことですWM_SETFOCUS。これにより、エディターに「Caps Lock is On」バルーンが強制的に表示されます。

  if GetKeyState(VK_CAPITAL) and 1 <> 0 then
  begin
    if edtPassword.Focused then
    begin
      PostMessage(edtPassword.Handle, WM_KILLFOCUS, 0, 0);
      PostMessage(edtPassword.Handle, WM_SETFOCUS, 0, 0);
    end;
  end;
于 2012-11-19T16:30:20.613 に答える