Всем привет, у меня такой вопрос, возможно убрать подчеркивание у 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