找回密码
 加入
搜索
查看: 2936|回复: 3

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

[复制链接]
发表于 2011-8-6 09:14:12 | 显示全部楼层 |阅读模式
如何解决文本和图片编辑框的问题,UDF富文本基本能满足,但太大了
不知道各位如何解决这个问题,如QQ聊天输入框或WORD编辑框。。可以输入文字和图片,甚至flash。。如没有相应控件或UDF。。
能否使用嵌入fckeditor之类富文本解决?但是又可能需要架设HTTP服务器,才可以内嵌。但是文本框的值读写是什么操作?
发表于 2011-8-6 10:34:10 | 显示全部楼层
帖你的代码,看看你用种方式创建的,存成那种格式的
 楼主| 发表于 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
发表于 2011-8-6 11:30:59 | 显示全部楼层
你用RICHTEXT ActiveX创建下试试看
$oObject = ObjCreate("RICHTEXT.RichTextCtrl")
$Control = GUICtrlCreateObj($oObject, 30, 20)
GUICtrlSetPos(-1, 30, 20, 200, 200)
....

现在手边没有环境,没法帮你试了
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-14 14:06 , Processed in 0.074351 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表