c # - Если условие: кнопка мыши нажата и bAlpha - PullRequest
0 голосов
/ 20 октября 2019

В теме ниже были некоторые предложения о том, как создать переключатель для двух методов
с помощью одной кнопки:
how-can-i-switch-Между-двумя-методами-в-одном-button-with-each-click

Как можно добиться чего-то подобного с помощью одной конкретной кнопки мыши (например, переключение между двумя LayeredWindowsAttributes)?

Или как можно кодировать следующее?
Щелкните правой кнопкой мыши && bAlpha = 10: установите значение прозрачности на 255
Щелкните правой кнопкой мыши && bAlpha = 255: установите значение прозрачности на 10

Основная проблема здесь, вероятно, в том, что я не знаю, как я проверяю bAlpha, как если бы условие.

Вот как я устанавливаю значение bAlpha:

private void Form1_MouseDown(object sender, MouseEventArgs e)
  {
   SetWindowLong(Handle, GWL_EXSTYLE, GetWindowLong(Handle, GWL_EXSTYLE) | WS_EX_LAYERED);

        if (e.Button == MouseButtons.Right)
        {
            SetLayeredWindowAttributes(Handle, 0, 10, LWA_ALPHA);
            //SetLayeredWindowAttributes(Handle, 0, 255, LWA_ALPHA);
        }
  }

Ответы [ 2 ]

1 голос
/ 20 октября 2019
bool _transparent;

private void Form1_MouseDown(object sender, MouseEventArgs e)
{
    SetWindowLong(Handle, GWL_EXSTYLE, GetWindowLong(Handle, GWL_EXSTYLE) | WS_EX_LAYERED);
    if (e.Button == MouseButtons.Right)
    {
        _transparent = !_transparent;
        byte alpha = (byte)(_transparent ? 10 : 255);
        SetLayeredWindowAttributes(Handle, 0, alpha, LWA_ALPHA);
    }
}
0 голосов
/ 20 октября 2019

Окончательная версия (включает исправление для преобразования int в байты).

bool _transparent;

private void Form1_MouseDown(object sender, MouseEventArgs e)
{
    SetWindowLong(Handle, GWL_EXSTYLE, GetWindowLong(Handle, GWL_EXSTYLE) | WS_EX_LAYERED);
    if (e.Button == MouseButtons.Right)
    {
        _transparent = !_transparent;
        byte alpha = (byte)(_transparent ? 10 : 255);
        SetLayeredWindowAttributes(Handle, 0, alpha, LWA_ALPHA);
    }
}
...