Вопрос

Я пытаюсь создать приложение, которое делает окно (внешнее по отношению к приложению) прозрачным, когда оно теряет фокус.Большинство вещей (получение идентификатора окна, настройка прозрачности и т. д.) было бы простым, за исключением одного: как мне подключить окна?

Это было полезно?

Решение

Вы можете использовать взаимодействие.Использовать Отправить сообщение() функция для отправки вашему окну специального сообщения.Затем окно может вызвать УстановитьLayeredWindowAttributes() как только вы получите это сообщение, измените его прозрачность.

Другое дело, что вы действительно должны иметь возможность сделать окно САМО прозрачным, когда оно теряет фокус, прислушиваясь к WM_KILLFOCUS

РЕДАКТИРОВАТЬ:

Зафиксируйте события Deactivate и Activated в C#.

    private void Form1_Deactivate( object sender, EventArgs e )
    {
      this.Opacity = 0.5 ;
    }

    private void Form1_Activated( object sender, EventArgs e )
    {
      this.Opacity = 1.0 ;
    }
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top