auto 发表于 2011-8-6 09:14:12

如何解决文本和图片编辑框的问题,UDF富文本基本能满足,但储存时容量太大了

如何解决文本和图片编辑框的问题,UDF富文本基本能满足,但太大了
不知道各位如何解决这个问题,如QQ聊天输入框或WORD编辑框。。可以输入文字和图片,甚至flash。。如没有相应控件或UDF。。
能否使用嵌入fckeditor之类富文本解决?但是又可能需要架设HTTP服务器,才可以内嵌。但是文本框的值读写是什么操作?

happytc 发表于 2011-8-6 10:34:10

帖你的代码,看看你用种方式创建的,存成那种格式的

auto 发表于 2011-8-6 10:54:22

回复 2# happytc
rtf格式,特别是加入图片,是按图片BMP容量储存
代码是RICH自带的例子
测试时,在编辑加粘贴一张200K左右的图片,保存时文档可能增加1.1MB左右#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>

Opt('MustDeclareVars', 1)

Global $lblMsg, $hRichEdit

Main()

Func Main()
        Local $hGui, $iMsg
        $hGui = GUICreate("Example (" & StringTrimRight(@ScriptName,4) &")", 320, 350, -1, -1)
        $hRichEdit = _GUICtrlRichEdit_Create($hGui, "This is a test.", 10, 10, 300, 220, _
                        BitOR($ES_MULTILINE, $WS_VSCROLL, $ES_AUTOVSCROLL))
        $lblMsg = GUICtrlCreateLabel("", 10, 235, 300, 60)
        GUISetState()

        For $i = 2 To 3
                _GuiCtrlRichEdit_AppendText($hRichEdit, @CR & "Line " & $i)
        Next
        ;$sText = ClipGet()
        ;_GUICtrlRichEdit_AppendText($hRichEdit, ClipGet())

        Report("First visible line is number " & _GUICtrlRichEdit_GetNumberOfFirstVisibleLine($hRichEdit))

        While True
                $iMsg = GUIGetMsg()
                Select
                        Case $iMsg = $GUI_EVENT_CLOSE
                                ;MsgBox(1,1, _GUICtrlRichEdit_StreamToVar($hRichEdit))
                                ;ClipPut( _GUICtrlRichEdit_StreamToVar($hRichEdit))
                                ;_GuiCtrlRichEdit_SetText($hRichEdit, "")
                                ;Sleep(20000)
                               _GuiCtrlRichEdit_StreamToFile($hRichEdit, @DesktopDir & "\test.rtf")
                                GUIDelete()
                                Exit
                EndSelect
        WEnd
EndFunc   ;==>Main

Func Report($sMsg)
        GUICtrlSetData($lblMsg, $sMsg)
EndFunc   ;==>Report

happytc 发表于 2011-8-6 11:30:59

你用RICHTEXT ActiveX创建下试试看
$oObject = ObjCreate("RICHTEXT.RichTextCtrl")
$Control = GUICtrlCreateObj($oObject, 30, 20)
GUICtrlSetPos(-1, 30, 20, 200, 200)
....

现在手边没有环境,没法帮你试了
页: [1]
查看完整版本: 如何解决文本和图片编辑框的问题,UDF富文本基本能满足,但储存时容量太大了