RichTextBox或是text里可以显示图片吗?比如做一个文本内容,要求里面的部分字变成红色,中间还插些图片什么的。

解决方案 »

  1.   

    RichTextBox可以显示图片,你复制图片,可以粘贴到RichTextBox中的
    text不行
      

  2.   

    你打开vb,选新建工程,选vb应用程序向导,选多文档界面,就会生成一个类似写字板的例子程序,可以参考一下
      

  3.   

    TO:fuxc(Michael(继续迷茫)) 复制粘贴进去的,显示不了图片。
      

  4.   

    RichTextBox可以,自己看看说明再说,不要老问别人
      

  5.   

    Option Explicit'HOWTO:  Display  and  Use  the  OLE  Insert  Object  Dialog  Box  in  VB
    '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
      

  6.   

    www.cnpopsoft.com 
    这里有不少独家提供的有关RichTextBox的资料!