Что нового

Как вставить картинку в RichEdit из буфера обмена

pvnn

Осваивающий
Сообщения
288
Репутация
31
Есть ли возможность средствами Autoit вставить bmp-картинку в RichEdit из буфера обмена без предварительного сохранения картинки в файл

Из файла можно было сделать так:
Код:
#include <GuiRichEdit.au3>
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>


$Form1 = GUICreate("Form1", 300, 200, -1, -1)
$hRichEdit = _GUICtrlRichEdit_Create($Form1, "", 7, 12, 280, 180, BitOR($ES_MULTILINE, $WS_VSCROLL, $ES_AUTOVSCROLL))
_GUICtrlRichEdit_AppendText($hRichEdit, "Текст ")
_GUICtrlRichEdit_AppendText($hRichEdit, ReadBmpToRtf(@ScriptDir&'\img.bmp'))

GUISetState(@SW_SHOW)

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
        Exit
    EndSwitch
WEnd

Func ReadBmpToRtf($sBmpFilspc)
    Local $hFile, $sRtf
    $hFile = FileOpen($sBmpFilspc, 16)
    If FileRead($hFile, 2) <> "0x424D" Then Return SetError(1, 0, "")
    FileRead($hFile, 12)
    $sRtf = '{\rtf1{\pict\dibitmap ' & Hex(FileRead($hFile)) & '}}'
    FileClose($hFile)
    Return $sRtf
EndFunc

Пока вот такое начало, получаю указатель на картинку, что дальше...
Код:
#include <GuiRichEdit.au3>
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

$Form1 = GUICreate("Form1", 300, 200, -1, -1)
$hRichEdit = _GUICtrlRichEdit_Create($Form1, "", 7, 12, 280, 180, BitOR($ES_MULTILINE, $WS_VSCROLL, $ES_AUTOVSCROLL))

_ClipBoard_Open(0)
$hBitmap = _ClipBoard_GetDataEx($CF_BITMAP)
MsgBox(0,'Проверка что BITMAP',_ClipBoard_IsFormatAvailable($CF_BITMAP))
_ClipBoard_Close()

GUISetState(@SW_SHOW)

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
    Case $GUI_EVENT_CLOSE
        Exit
    EndSwitch
WEnd
 
Автор
P

pvnn

Осваивающий
Сообщения
288
Репутация
31

InnI спасибо, походу я совсем заработался​

 
Верх