Что нового

RichEdit - убрать подчеркивание у функции LINK?

GUIMish

Знающий
Сообщения
122
Репутация
12
Всем привет, у меня такой вопрос, возможно убрать подчеркивание у RichEdit, если на тексте стоит функция LINK.
Нужно что-бы оно осталось кликобательной, но без подчеркивания.

Вот код:
Код:
#include <GuiRichEdit.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

$Window = GUICreate("Окно", 500, 300)

$RichEdit = _GUICtrlRichEdit_Create($Window, 'I Love Autoit.', 1, 1, 496, 296, BitOR(0x0004, 0x00204000), 0x00000004)

_GUICtrlRichEdit_SetAttrib($RichEdit, _GUICtrlRichEdit_GetText($RichEdit), "Autoit", "+li")
_GUICtrlRichEdit_SetEventMask($RichEdit, $ENM_LINK)
_GUICtrlRichEdit_SetReadOnly($RichEdit)

GUISetState()
GUIRegisterMsg(0x004E, "WM_NOTIFY")
While 1
	Switch GUIGetMsg()
		Case -3
			Exit
	EndSwitch
WEnd

Func WM_NOTIFY($hWnd, $iMsg, $wParam, $lParam)
	Local $tNMHDR = DllStructCreate($tagNMHDR, $lParam), $hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom")), $Code = DllStructGetData($tNMHDR, "Code")
	Local $iIDFrom = DllStructGetData($tNMHDR, "IDFrom")

	Switch $hWndFrom
		Case $RichEdit
			Select
				Case $Code = $EN_LINK
					Local $tMsgFilter = DllStructCreate($tagMSGFILTER, $lParam)
					If DllStructGetData($tMsgFilter, "msg") = $WM_LBUTTONUP Then
						Local $tEnLink = DllStructCreate($tagENLINK, $lParam)
						Local $cpMin = DllStructGetData($tEnLink, "cpMin"), $cpMax = DllStructGetData($tEnLink, "cpMax")
						Local $sLink = _GUICtrlRichEdit_GetTextInRange($RichEdit, $cpMin, $cpMax)
						MsgBox(0, "", $sLink)
					EndIf
			EndSelect
	EndSwitch
    Return $GUI_RUNDEFMSG
EndFunc

Func _GUICtrlRichEdit_SetAttrib($hRichEdit, $Text, $Patt, $style)
	Local $Search, $Pos = 0, $RegExp, $st, $end, $Numbers
	$Search = _GUICtrlRichEdit_GetText($hRichEdit)

    While 1
        $RegExp = StringRegExp($Text, $Patt, 3)

        For $x = 0 To UBound($RegExp) - 1
            $st = StringInStr($Search, $RegExp[$x], 0, 1, 1 + $Pos) - 1
            $end = StringLen($RegExp[$x]) + $st
			$Pos = $end + 1
            _GUICtrlRichEdit_SetSel($hRichEdit, $st, $end, True)
            _GUICtrlRichEdit_SetCharAttributes($hRichEdit, $style)
            _GUICtrlRichEdit_Deselect($hRichEdit)
        Next
		_GUICtrlRichEdit_SetSel($hRichEdit, 0, 0, True)
		ExitLoop
    WEnd
EndFunc
 
Верх