從win2000開始,windows提供了一個新的api SetLayeredWindowAttributes,可以輕松實現(xiàn)透明窗口,在網(wǎng)上有許多vb,vc,delphi的示例程序,下面我來介紹一下如何使用swt來實現(xiàn)這一效果 從win2000開始,windows提供了一個新的api SetLayeredWindowAttributes,可以輕松實現(xiàn)透明窗口,在網(wǎng)上有許多vb,vc,delphi的示例程序,下面我來介紹一下如何使用swt來實現(xiàn)這一效果: BOOL SetLayeredWindowAttributes( HWND hwnd, // handle to the layered window COLORREF crKey, // specifies the color key BYTE bAlpha, // value for the blend function DWORD dwFlags // action ); Windows NT/2000/XP: Included in Windows 2000 and later. Windows 95/98/Me: Unsupported. Header: Declared in Winuser.h; include Windows.h. Library: Use User32.lib. 一些常量: WS_EX_LAYERED = 0x80000; LWA_ALPHA = 0x2; LWA_COLORKEY=0x1 其中dwFlags有LWA_ALPHA和LWA_COLORKEY LWA_ALPHA被設(shè)置的話,通過bAlpha決定透明度. LWA_COLORKEY被設(shè)置的話,則指定被透明掉的顏色為crKey,其他顏色則正常顯示. 注:要使使窗體擁有透明效果,首先要有WS_EX_LAYERED擴展屬性(舊sdk也沒有的). 上面是該函數(shù)的資料,下面是一段代碼示例:
里面用到的幾個類都在org.eclipse.swt.internal.win32下 |
|