簡體   English   中英

如何在 vb6 中以 unicode 格式從富文本框中獲取文本

[英]How can I get text from the richtextbox in unicode format in vb6

我嘗試從 vb6 中的 Richtextbox 控件獲取文本。 但是,unicode 文本這不起作用。

text1=richtextbox1.text

這給了我"????"

有誰能夠幫我?


此代碼不起作用。 我嘗試使用以下聲明運行它:

Const GTL_USECRLF = 1
Const GTL_PRECISE = 2
Const GTL_NUMCHARS = 8
Const CP_UNICODE = 1200
Const GT_USECRLF = 1
Private Type GETTEXTEX
    cb As Long
    flags As Long
    codepage As Integer
    lpDefaultChar As String
    lpUsedDefChar As Boolean
End Type
Private Type GETTEXTLENGTHEX
    flags As Long          ' /* flags (see GTL_XXX defines)              */
    codepage As Long       ' /* code page for translation (CP_ACP for default,
                            '1200 for Unicode                         */
End Type

我不知道:

EM_GETTEXTLENGTHEX , EM_GETTEXTEX

請發送完整的代碼。 (所有聲明)

真的很容易。 以下是沒有所需的DeclareConst等聲明的基本Const

public Declare Function SendMessageWLng Lib "user32" Alias "SendMessageW" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long

Public Const WM_USER = &H400
Public Const EM_GETSCROLLPOS = WM_USER + 221
Public Const EM_SETSCROLLPOS = WM_USER + 222

Public Const CP_UNICODE = 1200&
Public Const GT_USECRLF = 1&
Public Const GTL_USECRLF = 1&
Public Const GTL_PRECISE = 2&
Public Const GTL_NUMCHARS = 8&

Public Const EM_GETTEXTEX = WM_USER + 94
Public Const EM_GETTEXTLENGTHEX = WM_USER + 95

    Public Function RTBReadUnicode(ByVal RTB As RichTextLib.RichTextBox) As String
        'Reads Text from RichTextBox as Unicode text on a system with Rich Edit 3.0
        '(Windows Me, Windows 2000, or later).
        Dim gtlUnicode As GETTEXTLENGTHEX
        Dim gtUnicode As GETTEXTEX
        Dim lngChars As Long
    
        With gtlUnicode
            .flags = GTL_USECRLF Or GTL_PRECISE Or GTL_NUMCHARS
            .codepage = CP_UNICODE
        End With
        lngChars = SendMessageWLng(RTB.hWnd, EM_GETTEXTLENGTHEX, VarPtr(gtlUnicode), 0)
    
        With gtUnicode
            .cb = (lngChars + 1) * 2
            .flags = GT_USECRLF
            .codepage = CP_UNICODE
        End With
        RTBReadUnicode = String$(lngChars, 0)
        SendMessageWLng RTB.hWnd, EM_GETTEXTEX, VarPtr(gtUnicode), StrPtr(RTBReadUnicode)
    End Function

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM