RichTextBox或是text里可以显示图片吗?比如做一个文本内容,要求里面的部分字变成红色,中间还插些图片什么的。
解决方案 »
- 不显示删除回复显示所有回复显示星级回复显示得分回复 关于连接ftp的问题,在线等,急!!!急!!!急!!!
- 提取资源文件中的XML文件后XML文件内产生多余字节
- 一个很小的问题,关于PICTURE控件的问题
- 一个dll程序如何知道什么程序在调用自己
- 两个人确定问题?(高手请进!)
- 如何在VB里的一个窗口 里实现像网页里一样,可以左右两个窗口,帧的结构???
- 碰到一个麻烦的问题
- 串口打开出错?
- 大家帮忙看一下这个delphi的 dll
- playyuer(女㊣爱):请进来看看!!上次的问题还是没有解决!再来帮帮忙!!!好不好!!!要是有高手知道,请也来看看!!!我很着急,这个问题好几天了,没有解决·!再来帮帮忙!!!
- 如何屏蔽Alt+Esc,Ctrl+Alt+Delete,Alt+Tab键?
- 用richtextbox写彩色文字问题??
text不行
'The information in this article applies to:
'Microsoft Visual Basic Learning Edition for Windows 5.0
'Microsoft Visual Basic Learning Edition for Windows 6.0
'Microsoft Visual Basic Professional Edition for Windows 5.0
'Microsoft Visual Basic Professional Edition for Windows 6.0
'Microsoft Visual Basic Enterprise Edition for Windows 5.0
'Microsoft Visual Basic Enterprise Edition for Windows 6.0
'This article was previously published under Q217176
'SUMMARY
'The Insert Object dialog box is used widely in OLE based applications. This article shows you how to display the standard Insert Object dialog box using Visual Basic. It also demonstrates the use of the OLE APIs that need to pass LPOLESTR * from Visual Basic.
'MORE Information
'The following example displays an Insert Object dialog box and inserts what you select in a rich text box.
'Steps to Create the Sample
'Create a Visual Basic Standard EXE project. Form1 is created by default.
'From the Projects menu, choose Components then select the Microsoft Rich Text Control x.x. Click OK.
'Add a rich text box and a command button to Form1.
'Add the following code to the General Declarations section of Form1:
' This is the main API used to display the Insert Obj DlgBox
Private Declare Function OleUIInsertObject Lib "oledlg.dll" _
Alias "OleUIInsertObjectA" (inParam As Any) As Long
' This is used to get the ProgID from Class ID.
' Note that this API need us to pass LPOLESTR * from Visual Basic.
Private Declare Function ProgIDFromCLSID Lib "ole32.dll" _
(clsid As Any, strAddess As Long) As Long
' The memory allocated OLE way need to be released OLE way
' with this API.
Private Declare Sub CoTaskMemFree Lib "ole32.dll" (ByVal pvoid As Long)
' Widely used CopyMemory API.
Private Declare Sub CopyMemory Lib "kernel32" Alias _
"RtlMoveMemory" (Destination As Any, Source As Any, _
ByVal Length As Long)
' Note that you need to get the strlength of the UNICODE string.
Private Declare Function lstrlenW Lib "kernel32" _
(ByVal lpString As Long) As Long
' Constants used in the dwFlags of OleUIInsertObjectType.
Const IOF_SHOWHELP = &H1
Const IOF_SELECTCREATENEW = &H2
Const IOF_SELECTCREATEFROMFILE = &H4
Const IOF_CHECKLINK = &H8
Const IOF_CHECKDISPLAYASICON = &H10
Const IOF_CREATENEWOBJECT = &H20
Const IOF_CREATEFILEOBJECT = &H40
Const IOF_CREATELINKOBJECT = &H80
Const IOF_DISABLELINK = &H100
Const IOF_VERIFYSERVERSEXIST = &H200
Const IOF_DISABLEDISPLAYASICON = &H400
Const IOF_HIDECHANGEICON = &H800
Const IOF_SHOWINSERTCONTROL = &H1000
Const IOF_SELECTCREATECONTROL = &H2000
' Return codes from OleUIInsertObject
Const OLEUI_FALSE = 0
Const OLEUI_SUCCESS = 1 ' No error, same as OLEUI_OK.
Const OLEUI_OK = 1 ' OK button pressed.
Const OLEUI_CANCEL = 2 ' Cancel button pressed.
' GUID, IID, CLSID, etc
Private Type GUID
Data1 As Long
Data2 As Integer
Data3 As Integer
Data4(0 To 7) As Byte
End Type
' Main UDT used in OleUIInsertObject.
Private Type OleUIInsertObjectType
' These IN fields are standard across all OLEUI dialog box functions.
cbStruct As Long
dwFlags As Long
hWndOwner As Long
lpszCaption As String ' LPCSTR
lpfnHook As Long ' LPFNOLEUIHOOK
lCustData As Long ' LPARAM
hInstance As Long
lpszTemplate As String ' LPCSTR
hResource As Long ' HRSRC
clsid As GUID
' Specifics for OLEUIINSERTOBJECT.
lpszFile As String ' LPTSTR
cchFile As Long
cClsidExclude As Long
lpClsidExclude As Long ' LPCLSID
IID As GUID
' Specifics to create objects if flags say so.
oleRender As Long
lpFormatEtc As Long ' LPFORMATETC
lpIOleClientSite As Long ' LPOLECLIENTSITE
lpIStorage As Long ' LPSTORAGE
ppvObj As Long ' LPVOID FAR *
sc As Long ' SCODE
hMetaPict As Long ' HGLOBAL
End Type
Private Sub Command1_Click()
Dim UIInsertObj As OleUIInsertObjectType
Dim retValue As Long
Dim lpolestr As Long
Dim strsize As Long
Dim ProgId As String
On Error GoTo err
' Prepare the OleUIInsertObjectType.
UIInsertObj.cbStruct = LenB(UIInsertObj)
UIInsertObj.dwFlags = IOF_SELECTCREATENEW
UIInsertObj.hWndOwner = Me.hWnd
UIInsertObj.lpszFile = String(256, " ")
UIInsertObj.cchFile = Len(UIInsertObj.lpszFile)
' Call the API to display the dialog box.
retValue = OleUIInsertObject(UIInsertObj)
If (retValue = OLEUI_OK) Then
' If we select to insert from a new object
If ((UIInsertObj.dwFlags And IOF_SELECTCREATENEW) = _
IOF_SELECTCREATENEW) Then
' You need to get the ProgID.
' Note that we pass in a long byref.
retValue = ProgIDFromCLSID(UIInsertObj.clsid, lpolestr)
' The size you need to initialize is the strlen + 1.
strsize = lstrlenW(lpolestr) + 1
ProgId = String(strsize, 0)
' Copy the string to BSTR. Notice the StrPtr function.
' Also notice that every UNICODE char is 2 bytes.
CopyMemory ByVal StrPtr(ProgId), ByVal lpolestr, strsize * 2
' We need to free the memory allocated by ProgIDFromCLSID API.
CoTaskMemFree lpolestr
RichTextBox1.OLEObjects.Add , , "", ProgId
Else ' If we select to insert from file
RichTextBox1.OLEObjects.Add , , UIInsertObj.lpszFile
End If
End If
Exit Sub
err:
MsgBox err.Description
End Sub
这里有不少独家提供的有关RichTextBox的资料!