2012-11-20 224 views
1

我用下面的代碼:WindowEx:背景顏色設置爲透明

#include <WinAPI.au3> 
#include <WindowsConstants.au3> 



Global Const $WC_LINK = "SysLink" 
Global Const $WC_LINKA = $WC_LINK 
Global Const $WC_LINKW = $WC_LINK 

$g_hLink = _WinAPI_CreateWindowEx(0, $WC_LINK, _ 
'Test, [url="http://www.microsoft.com"]click here[/url], [url="http://www.microsoft.com"]here[/url] or [url=""]here[/url]', _ 
BitOR($WS_VISIBLE , $WS_CHILD , $WS_TABSTOP), _ 
10,10, 300, 60, $Form2) 
GUIRegisterMsg($WM_NOTIFY,"MY_LINK_NOTIFY") 


Func MY_LINK_NOTIFY($hWnd, $Msg, $wParam, $lParam) 
Local Const $tagNMLINK = $tagNMHDR & ";" & "UINT mask; int iLink; UINT state; UINT stateMask; WCHAR szID[48]; WCHAR szUrl[2083];" 
Local $NMHDR = DllStructCreate($tagNMHDR,$lParam) 
Local $hwndFrom = DllStructGetData($NMHDR,"hwndFrom"); 
Switch $hwndFrom 
Case $g_hLink 
switch DllStructGetData($NMHDR,"code") 
case $NM_CLICK 
ContinueCase 
case $NM_RETURN 
$NMHDR = DllStructCreate($tagNMLINK,$lParam) 
Local $iLink = DllStructGetData($NMHDR,"iLink") 
Local $szURL = DllStructGetData($NMHDR,"szURL") 
Local $szID = DllStructGetData($NMHDR,"szID") 

if $szURL <> "" Then 
ShellExecute($szURL, "", "", "open",@SW_SHOW); 
EndIf 
EndSwitch 
EndSwitch 
EndFunc 

爲了使我syslinks點擊:

enter image description here

的問題是,我希望它顯示只有文本...並將此白色/灰色背景設置爲透明。

我該怎麼做?

回答

0

看來這是不可能的。

LWS_TRANSPARENT樣式,但它不會使SysLink透明,只是將其背景色設置爲窗口背景色。

此外,SysLink支持WM_CTLCOLORSTATIC消息,但不能使背景顏色透明。