Gepunkteten Fokusrahmen (seit Win 10) entfernen

  • Bei Listview und deutlicher bei Tab-Ctrl sieht man als Markierung des Item mit Fokus einen unschönen gepunkteten Rahmen.
    Diesen zu Entfernen ist (wenn man es endlich gefunden hat) doch recht simpel. Die folgende Funktion für die GUI aufrufen und alle Elemente der GUI bekommen das HIDEFOCUS-Setting. Man kann auch die Nachricht an ein beliebiges Ctrl auf der GUI senden. Dann wird die Nachricht hinauf geleitet bis zum Parent und von dort wieder hinunter zu allen Childs. - Was natürlich auch bedeutet, dass dieses Setting ein "all or nothing" Setting ist, keine Selektion auf einzelne Ctrl.

    AutoIt
    ; required: #include <WinAPISysWin.au3>, #include <WinAPIConv.au3>
    Func _RemoveFocus($_hWnd)
        Local Const $UIS_SET = 1
        Local Const $UISF_HIDEFOCUS = 0x1
        _WinAPI_PostMessage($_hWnd, $WM_CHANGEUISTATE, _WinAPI_MakeLong($UIS_SET, $UISF_HIDEFOCUS), 0)
    EndFunc


    Hier ein Bsp.


    Um das fokussierte Element aber besser zu sehen, vergrößere ich im folgenden Bsp. die Fontgröße von 14.5 auf 15 wenn es den Fokus erhält.