publicc void setAlpha(int alpha)
alpha范围为0~255
从eclipse3.4开始支持此方法
/**
* Sets the receiver's alpha value which must be
* between 0 (transparent) and 255 (opaque).
* <p>
* This operation requires the operating system's advanced
* widgets subsystem which may not be available on some
* platforms.
* </p>
* @param alpha the alpha value
*
* @exception SWTException <ul>
* <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li>
* <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li>
* </ul>
*
* @since 3.4
*/
public void setAlpha (int alpha) {
checkWidget ();
if (!OS.IsWinCE && OS.WIN32_VERSION >= OS.VERSION (5, 1)) {
alpha &= 0xFF;
int bits = OS.GetWindowLong (handle, OS.GWL_EXSTYLE);
if (alpha == 0xFF) {
OS.SetWindowLong (handle, OS.GWL_EXSTYLE, bits & ~OS.WS_EX_LAYERED);
int flags = OS.RDW_ERASE | OS.RDW_INVALIDATE | OS.RDW_FRAME | OS.RDW_ALLCHILDREN;
OS.RedrawWindow (handle, null, 0, flags);
} else {
OS.SetWindowLong (handle, OS.GWL_EXSTYLE, bits | OS.WS_EX_LAYERED);
OS.SetLayeredWindowAttributes (handle, 0, (byte)alpha, OS.LWA_ALPHA);
}
}
}
Eclipse3.4中setAlpha方法详解
本文介绍了Eclipse3.4及以上版本中提供的setAlpha方法,该方法允许设置透明度范围从0(完全透明)到255(完全不透明)。文章详细解释了如何使用此方法调整窗口透明度,并提供了实现这一功能的具体代码示例。
515

被折叠的 条评论
为什么被折叠?



