RichTextBox插入.gif图片
来源:互联网 发布:足不出户知天下 原文 编辑:程序博客网 时间:2024/06/10 07:52
'转载
'实际上还可以嵌入其他组件,比如Windows Media Player等,下面以比较成熟的QQ的ImageOle为例。
'
'需要组件:
'ImageOle.dll 在QQ的目录下找,如果非XP系统则还需要GdiPlus.dll。
'OleLib.tlb 下载地址:http://www.mvps.org/emorcillo/download/vb6/tl_ole.zip(此压缩包我gmail邮箱里也有)
'
'引用两个组件后,在窗体添加一个RichTextBox1,然后将下面代码放在.bas中
Option Explicit
Private Declare Sub ZeroMemory Lib "KERNEL32" Alias "RtlZeroMemory" (dest As Any, ByVal numBytes As Long)
Private Declare Function InvalidateRect Lib "user32.dll" (ByVal hwnd As Long, ByRef lpRect As RECT, ByVal bErase As Long) As Long
Private Declare Function GetWindowRect Lib "user32.dll" (ByVal hwnd As Long, ByRef lpRect As RECT) As Long
Public Declare Function UpdateWindow Lib "user32.dll" (ByVal hwnd As Long) As Long
Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Const WM_USER = &H400
Private Const EM_GETOLEINTERFACE = (WM_USER + 60)
Private Const EM_POSFROMCHAR = (WM_USER + 38)
Public Enum reCharPos
reSelection = -1
End Enum
Public Enum reObjectAspect
reObjectAspectContent = DVASPECT_CONTENT
reObjectAspectIcon = DVASPECT_ICON
End Enum
Public Function AddClass(hwnd As Long, ObjIUnknown As stdole.IUnknown, _
Optional ByVal CharPos As Long = reSelection, _
Optional ByVal InitialAspect As reObjectAspect = reObjectAspectContent) As IRichEditOle
Dim OleObject As olelib.IOleObject
Dim Storage As olelib.IStorage
Dim ClientSite As olelib.IOleClientSite
Dim tOUIIO As olelib.OLEUIINSERTOBJECT
Dim REOBJ As olelib.REOBJECT
Dim CLSID As olelib.UUID
Dim hMFPict As Long
Dim mILockBytes As ILockBytes
'创建Global Heap,实例化mILockBytes
Set mILockBytes = CreateILockBytesOnHGlobal(0&, True)
'创建storage,实例化mIStorage
Set Storage = StgCreateDocfileOnILockBytes(mILockBytes, STGM_SHARE_EXCLUSIVE _
Or STGM_CREATE Or STGM_READWRITE, 0)
Dim RichEditOle As IRichEditOle
SendMessage hwnd, EM_GETOLEINTERFACE, 0&, RichEditOle
Set ClientSite = RichEditOle.GetClientSite
' Set Storage = StgCreateDocfile(vbNullString, STGM_CREATE Or STGM_READWRITE Or STGM_DELETEONRELEASE Or STGM_SHARE_EXCLUSIVE)
Set OleObject = ObjIUnknown
OleObject.GetUserClassID CLSID
On Error Resume Next
If hMFPict = 0 Then hMFPict = OleGetIconOfClass(CLSID, vbNullString, 1)
If Err.Number <> 0 Then InitialAspect = reObjectAspectContent
On Error GoTo 0
OleSetContainedObject ObjIUnknown, 1
With REOBJ
.cbStruct = Len(REOBJ)
LSet .CLSID = CLSID
.DVASPECT = DVASPECT_CONTENT
.cp = REO_CP_SELECTION
.dwFlags = REO_DYNAMICSIZE
.sizel.cx = 0
.sizel.cy = 0
.dwUser = 0
Set .pStg = Storage
Set .polesite = ClientSite
Set .poleobj = ObjIUnknown
End With
RichEditOle.InsertObject REOBJ
ZeroMemory REOBJ, LenB(REOBJ)
ZeroMemory CLSID, LenB(CLSID)
Set AddClass = RichEditOle
Set OleObject = Nothing
Set ClientSite = Nothing
Set Storage = Nothing
SendMessage hwnd, &HF, 0, 0
End Function
private Sub CommandButton_Click()Dim g As New GifAnimator
g.LoadFromFile App.Path & "/" & sPictureFilePath & ".gif"
Call AddClass(RTxtCIN.hwnd, g)
end sun
- RichTextBox插入.gif图片
- RichTextBox插入图片。
- RichtextBox 插入图片
- RichtextBox 插入图片
- 向RichTextBox中插入图片
- ListCtrl插入GIF图片
- CSDN插入GIF图片
- c#控件RichTextBox扩展之插入图片
- RichTextBox中插入图片的方法
- Latex插入GIF动态图片
- c#.net 文本编辑控件——RichTextBox中插入图片
- c#.net 文本编辑控件——RichTextBox中插入图片
- 在RichEdit控制中插入Gif图片
- C# 让RichTextBox支持GIF
- RichTextBox中插入表格
- c# winform richtextbox将图片插入数据库、读取数据库显示图片
- c# richtextbox 图片
- wpf RichTextBox 选中 图片
- tomcat配置
- activeReport3.0 Bind data demo
- Java中的SOAP技术
- RTF格式文件说明
- 用API改变当前鼠标指针图案
- RichTextBox插入.gif图片
- 为什么去美国?笔记
- C++中的内存分配
- 类似QQ/Outlook的菜单
- 国庆7天长假作业
- 三十岁以前不必在乎的29件事
- 质量保证的六个模式(5) - 架构师控制产品模式
- Hibernate的20个问题
- 如何安装配置你的tomcat5并绑定域名