#include <GuiRichEdit.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
$hGui = GUICreate("Example", 320, 250)
$hRichEdit1 = _GUICtrlRichEdit_Create($hGui, "hRichEdit1", 10, 10, 140, 220, BitOR($ES_MULTILINE, $WS_VSCROLL, $ES_AUTOVSCROLL))
$hRichEdit2 = _GUICtrlRichEdit_Create($hGui, "hRichEdit2", 170, 10, 140, 220, BitOR($ES_MULTILINE, $WS_VSCROLL, $ES_AUTOVSCROLL))
_GUICtrlRichEdit_SetEventMask($hRichEdit1, $ENM_MOUSEEVENTS)
_GUICtrlRichEdit_SetEventMask($hRichEdit2, $ENM_MOUSEEVENTS)
GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")
GUISetState()
While True
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
GUIDelete()
Exit
EndSwitch
WEnd
Func WM_NOTIFY($hWnd, $iMsg, $iWparam, $iLparam)
Local $hWndFrom, $iCode, $tNMHDR, $tMsgFilter, $hMenu
$tNMHDR = DllStructCreate($tagNMHDR, $iLparam)
$hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
$iCode = DllStructGetData($tNMHDR, "Code")
Switch $iCode
Case $EN_MSGFILTER
$tMsgFilter = DllStructCreate($tagEN_MSGFILTER, $iLparam)
If DllStructGetData($tMsgFilter, "msg") = $WM_LBUTTONUP Then
Switch $hWndFrom
Case $hRichEdit1
ConsoleWrite("RichEdit1 clicked" & @LF)
Case $hRichEdit2
ConsoleWrite("RichEdit2 clicked" & @LF)
EndSwitch
EndIf
EndSwitch
Return $GUI_RUNDEFMSG
EndFunc