Code : Tout sélectionner
#AutoIt3Wrapper_Au3Check_Parameters= -d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6
#include <GuiRichEdit.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
HotKeySet("+!R", "_ToggleReadOnly") ;Shift+Alt+r - Toggle read only
Opt('MustDeclareVars', 1)
Global $hRichEdit
Global $Header = "{\rtf1\ansi\deff0\readprot\annotprot{\fonttbl {\f0 Normal;}}" ; Courier or New Times New Roman or roman or Times New Roman Greek
$Header &= "{\colortbl;\red0\green255\blue0;\red170\green0\blue0;\red255\green0\blue0;\red255\green255\blue255;\red0\green0\blue255;}"
Main()
Func Main()
Local $hGui, $iMsg
$hGui = GUICreate("Example (" & StringTrimRight(@ScriptName, 4) & ")", 320, 350, -1, -1)
$hRichEdit = _GUICtrlRichEdit_Create($hGui, "This is a \cf1 test\cf0 .\line ", 10, 10, 300, 220, _
BitOR($ES_MULTILINE, $WS_VSCROLL, $ES_AUTOVSCROLL, $WS_HSCROLL, $ES_AUTOHSCROLL, $ES_READONLY))
GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")
_GUICtrlRichEdit_SetEventMask($hRichEdit, $ENM_LINK)
_GUICtrlRichEdit_AutoDetectURL($hRichEdit, True)
_GUICtrlRichEdit_AppendText($hRichEdit, @CR & "\i\b <a href='http://www.autoitscript.com\i0\line' class='bbc_url' title=''>http://www.autoitscript.com\i0\line</a> ")
_GUICtrlRichEdit_AppendText($hRichEdit, @CR & "<a href='http://www.google.com\b0' class='bbc_url' title='External link' rel='nofollow external'>http://www.google.com\b0</a> \line ")
_GUICtrlRichEdit_AppendText($hRichEdit, @CR & '{\field{\*\fldinst{HYPERLINK "C:\"}}{\fldrslt{\ul\cf5\b c:\\ [view directory]}}}\b0\f0\par ')
_GUICtrlRichEdit_AppendText($hRichEdit, @CR & '{\field{\*\fldinst{HYPERLINK "Calc.exe"}}{\fldrslt{\ul\cf5\b Run Calculator}}}\b0\f0\par\par ')
_GUICtrlRichEdit_AppendText($hRichEdit, @CR & "Click on a \highlight2\cf4\b hyperlink\b0\cf0\highlight0 .")
_GUICtrlRichEdit_SetText($hRichEdit, $Header & "\fs24 " & _GUICtrlRichEdit_GetText($hRichEdit) & "\line ")
;\i\b - italics, bold; \cf4 - color front (font color) forth color in color table 1; \fs24 - font size 24 half points = 12 point characters.
; All need a trailing space.
;_GUICtrlRichEdit_SetZoom($hRichEdit, 250)
GUISetState()
While True
$iMsg = GUIGetMsg()
Select
Case $iMsg = $GUI_EVENT_CLOSE
_GUICtrlRichEdit_Destroy($hRichEdit)
Exit
EndSelect
WEnd
EndFunc ;==>Main
Func WM_NOTIFY($hWnd, $iMsg, $iWparam, $iLparam)
#forceref $hWnd, $iMsg, $iWparam
Local $hWndFrom, $iCode, $tNMHDR, $tEnLink, $cpMin, $cpMax, $tMsgFilter, $sLink
$tNMHDR = DllStructCreate($tagNMHDR, $iLparam)
$hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
$iCode = DllStructGetData($tNMHDR, "Code")
Switch $hWndFrom
Case $hRichEdit
Select
Case $iCode = $EN_LINK
$tMsgFilter = DllStructCreate($tagMSGFILTER, $iLparam)
If DllStructGetData($tMsgFilter, "msg") = $WM_LBUTTONUP Then
$tEnLink = DllStructCreate($tagENLINK, $iLparam)
$cpMin = DllStructGetData($tEnLink, "cpMin")
$cpMax = DllStructGetData($tEnLink, "cpMax")
$sLink = _GUICtrlRichEdit_GetTextInRange($hRichEdit, $cpMin, $cpMax)
ConsoleWrite($sLink & @LF)
If StringInStr($sLink, "/") Then
Run("C:\Program Files\Mozilla Firefox\firefox.exe " & $sLink)
;Run("Explorer.exe " & $sLink)
ElseIf StringRight($sLink, 3) == "exe" Then
ShellExecute($sLink)
Else
Run("Explorer.exe /e, " & $sLink)
EndIf
MsgBox(0, "", "Invoke your web browser here and point it to " & $sLink, 3)
EndIf
EndSelect
EndSwitch
Return $GUI_RUNDEFMSG
EndFunc ;==>WM_NOTIFY
Func _ToggleReadOnly()
Static $RO = 1
If $RO <> 1 Then
ConsoleWrite("$RO = " & $RO & @LF)
$RO = 1
_GUICtrlRichEdit_SetReadOnly($hRichEdit, True)
Else
ConsoleWrite("$RO = " & $RO & @LF)
$RO = 0
_GUICtrlRichEdit_SetReadOnly($hRichEdit, False)
EndIf
EndFunc ;==>_ToggleReadOnly