labwindows中只有设置panel颜色的方法,没有提供设置透明度的方法。但是在labwindows中可以调用Windows API函数来通过设置窗口透明度的方法来实现panel透明度的设置。
设置panel透明度需要经过一下几个步骤:
(1)需要设置窗口扩展风格。先获取窗口默认的窗口风格,然后再在原有风格基础上添加透明风格。
获取窗口窗口风格函数原型如下:
LONG_PTR GetWindowLongPtr
HWND hWnd,
int nIndex
);
该函数可获取指定窗口的有关信息,也可用于获取窗口内存中指定偏移的32位度整型值。
index 为欲获取的信息指定值。可以是以下其中之一。
GWL_EXSTYLE 获取扩展窗口样式。更多信息,查阅CreateWindowEx.
GWL_STYLE 获取窗口样式(window styles)
GWLP_WNDPROC 获取窗口程序指示器,或描述指示器的句柄 。如果使用此参数,必须使用CallWindowProc回调函数。
GWLP_HINSTANCE 获取一个应用程序实例的句柄 。
GWLP_HWNDPARENT 如果只有一个父窗口,获取父窗口的句柄 。
GWLP_ID 获取窗口标识符。
GWLP_USERDATA 获取窗口关联的数据,是应用程序创建窗口时留给用户的数据。初始值是0。
DWLP_DLGPROC 获取一个对话框的指示器,或描述指示器的句柄 。如果使用此参数,必须使用CallWindowProc回调函数。 DWLP_MSGRESULT 获取一个对话框中的被处理的信息的值。
DWLP_USER 作为指示器或句柄来获取私有应用程序的额外的信息。
设置窗口风格函数如下:
|
nlndex | 说明 |
---|---|
GWL_EXSTYLE |
设定一个新的扩展风格。更多信息,请见CreateWindowEx。 |
GWL_STYLE | 设定一个新的窗口风格。 |
GWL_WNDPROC | 为窗口过程设置一个新的地址。 |
GWL_HINSTANCE | 设置一个新的应用程序实例句柄。 |
GWL_ID | 设置一个新的窗口标识符。 |
GWL_USERDATA |
设置与该窗口相关的用户数据。这些用户数据可以在程序创建该窗口时被使用。用户数据的初始值为0。 |
当hWnd参数标识了一个对话框时,也可使用下列值: | |
DWL_DLGPROC | 设置对话框过程的新地址。 |
DWL_MSGRESULT | 设置对话框中的消息处理程序的返回值。 |
DWL_USER | 设置的应用程序所私有的新的额外信息,例如句柄或指针。 |
dwNewLong:指定的替换值。
(2)设置窗口透明度
函数原型为:
BOOL SetLayeredWindowAttributes
HWND hwnd,
COLORREF crKey,
BYTE bAlpha,
DWORD dwFlags
);
其中,dwFlags参数可取以下值:
LWA_ALPHA时:crKey参数无效,bAlpha参数有效;
LWA_COLORKEY:窗体中的所有颜色为crKey的地方将变为透明,bAlpha参数无效。其常量值为1。
LWA_ALPHA | LWA_COLORKEY:crKey的地方将变为全透明,而其它地方根据bAlpha参数确定透明度
int hwnd,index;
index=GetWindowLongPtrHWND)hwnd,GWL_EXSTYLE);
SetwindowLongPtrHWND)hwnd,GWL_EXSTYLE,index|WS_EX_LAYERED);
SetLayeredWindowAttributesHWND)hwnd,0,125,LWA_ALPHA): //125为透明度