2012-11-20 4 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, но вы не можете сделать цвет фона прозрачным с ним.

Смежные вопросы