c# - c# - 如果条件:单击鼠标键和 bAlpha
问题描述
在下面的主题中,有一些关于如何
使用一个按钮为两种方法创建切换的建议:
how-can-i-switch-between-two-methods-in-one-button-with-every-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);
}
}
解决方案
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);
}
}
推荐阅读
- jenkins-x - 为 Jenkins X 更新构建 podTemplate
- django - What are naming rules of templates in django class based views
- javascript - npm test 很好,但它也会在 askBackend ReferenceError: localStorage is not defined 处引发未捕获的错误
- python - 如何使电报键盘按钮发出命令?
- alfresco - 如何使用 CMIS 创建带有标签的文档
- unity3d - 滑动屏幕时ListView项目值发生变化..Unity
- influxdb - 无法在包含测量的 influxDB 点上创建 Grafana 动态仪表板
- ruby-on-rails - has_many through association dependent error is still referenced in table users
- wordpress - How get the language, which current user set in his profile?
- hyperledger-fabric - hyperledger fabric: "peer" not recognized during channel creation & joining - first network