Доброго времени суток
Как можно отследить событие вставки данных из буфера обмена в RichEdit, то есть событие происходящее после нажатия клавиш Ctrl+V или Shift+Insert или нужно анализировать именно нажатие клавиш?
Как можно отследить событие вставки данных из буфера обмена в RichEdit, то есть событие происходящее после нажатия клавиш Ctrl+V или Shift+Insert или нужно анализировать именно нажатие клавиш?
Код:
; AutoIt Version: 3.3.12.0
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <TreeViewConstants.au3>
#include <GuiRichEdit.au3>
#include <WindowsConstants.au3>
$Form1 = GUICreate("Form1", 541, 326, -1, -1)
$TreeView1 = GUICtrlCreateTreeView(8, 8, 161, 249)
$Button1 = GUICtrlCreateButton("Button1", 233, 278, 75, 25)
$hRichEdit = _GUICtrlRichEdit_Create($Form1, '', 176, 8, 354, 250, BitOR($ES_MULTILINE, $WS_VSCROLL,$WS_HSCROLL, $ES_AUTOVSCROLL))
_GUICtrlRichEdit_SetEventMask($hRichEdit, $ENM_CHANGE ) ; Родительскому окну высылать уведомление: $ENM_CHANGE
$RichEditChange = GUICtrlCreateDummy()
GUIRegisterMsg( $WM_COMMAND, "WM_COMMAND" )
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $RichEditChange
$RichEditText=_GUICtrlRichEdit_GetText($hRichEdit) ; Возвращает весь текст
ConsoleWrite(@CRLF&$RichEditText)
EndSwitch
WEnd
Func WM_COMMAND( $hWnd, $iMsg, $wParam, $lParam )
Local $hWndFrom = $lParam
Local $iCode = BitShift( $wParam, 16 )
Local $ID = BitAND($wParam, 0xFFFF)
Switch $hWndFrom
Case $hRichEdit
Switch $iCode
Case $EN_CHANGE ; Изменение данных в контроле
GUICtrlSendToDummy( $RichEditChange ) ; Посылает сообщения $RichEditChange
EndSwitch
EndSwitch
EndFunc