3

我正在使用以下代码:

#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

要使我的系统链接可点击:

在此处输入图像描述

问题是我希望它只显示文本......并将这个白色/灰色背景设置为透明。

我怎样才能做到这一点?

4

1 回答 1

0

似乎这是不可能的。

LWS_TRANSPARENT样式,但它不会使 SysLink 透明,它只是将其背景颜色设置为窗口背景颜色。

此外,SysLink 支持该WM_CTLCOLORSTATIC消息,但您不能使用它使背景颜色透明。

于 2013-04-29T13:30:31.693 回答