如题,检测RichTextBox中有无图片,如果有图片,则确定图片位置。

解决方案 »

  1.   

    能否设置一个对比标准?比如一个没有图片的文本框?我写了一个简单的代码:'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    '程序功能:检查富文本框中是否有图片
    '程序思想:设置一个没有图片的文本框作为判断标准,用要检测的富文本框何其比较,如果一致,那
    '        :么就没有图片,如果不一致,那么就有图片(需要排除文本框中有文字的情况)
    '%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    Option Explicit
    Private Const WM_PASTE = &H302
    Private 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 Declare Function GetPixel Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long) As Long
    Private Sub Command1_Click()
        Dim lngK As Long
        Dim lngT As Long
        Dim lngColorOne As Long
        Dim lngColorTwo As Long
        For lngK = 0 To rtbTwo.Width
            For lngT = 0 To rtbTwo.Height
                lngColorOne = GetPixel(Me.hdc, rtbOne.Left + lngK, rtbOne.Top + lngT)
                lngColorTwo = GetPixel(Me.hdc, rtbTwo.Left + lngK, rtbTwo.Top + lngT)
                If lngColorOne <> lngColorTwo Then
                    MsgBox "有图片", vbOKOnly + vbExclamation, "系统提示"
                    Exit Sub
                End If
            Next lngT
        Next lngK
    End SubPrivate Sub Form_Load()
        With Me
            .ScaleMode = 3
        End With
    End Sub
      

  2.   

    可以先把内容放到粘贴板中再判断,
    http://topic.csdn.net/u/20101025/15/792a7779-b872-4f34-8669-c6d1207bd6dd.html
      

  3.   

    TO  Veron_04
    文本里面文字和图片都有
      

  4.   


    '%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    '程序功能:检查富文本框中是否有图片
    '程序思想:设置一个没有图片的文本框作为判断标准,用要检测的富文本框何其比较,如果一致,那
    '        :么就没有图片,如果不一致,那么就有图片(需要排除文本框中有文字的情况)
    '%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
    Option Explicit
    Private Const WM_PASTE = &H302
    Private 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 Declare Function GetPixel Lib "gdi32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long) As Long
    Private Sub Command1_Click()
        Dim lngK As Long
        Dim lngT As Long
        Dim lngColorOne As Long
        Dim lngColorTwo As Long
        rtbTwo.Text = rtbOne.Text
        For lngK = 0 To rtbTwo.Width
            For lngT = 0 To rtbTwo.Height
                lngColorOne = GetPixel(Me.hdc, rtbOne.Left + lngK, rtbOne.Top + lngT)
                lngColorTwo = GetPixel(Me.hdc, rtbTwo.Left + lngK, rtbTwo.Top + lngT)
                If lngColorOne <> lngColorTwo Then
                    MsgBox "有图片", vbOKOnly + vbExclamation, "系统提示"
                    Exit Sub
                End If
            Next lngT
        Next lngK
        MsgBox "没有图片", vbOKOnly + vbExclamation, "系统提示"
    End SubPrivate Sub Form_Load()
        With Me
            .ScaleMode = 3
        End With
        rtbTwo.Width = rtbOne.Width
        rtbTwo.Height = rtbOne.Height
        rtbTwo.Text = rtbOne.Text
    End Sub
      

  5.   

    本帖最后由 bcrun 于 2010-11-23 10:47:34 编辑
      

  6.   

    TO  cbm666
    能不能对图片进行区分?也就是说,我事先对图片编号,当读到图片时,知道是哪一张图片。
      

  7.   

    呵呵没试过 最初步的思路是读Pixel(在richtextbox上面的图片应该都很小的)
      

  8.   

    使用BitBlt无法取得富文本框中的内容。他没有HDC属性。唉。