2012-09-07 1 views
1

vb6의 richtextbox 컨트롤에서 텍스트를 가져 오려고합니다. 그러나 유니 코드 텍스트가 작동하지 않습니다. richtextbox에서 vb6의 유니 코드 형식으로 텍스트를 가져 오는 방법

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 

완전한 코드를 보내 주시기 바랍니다. (모든 선언 있음)

+1

[이 MSDN 블로그 (http://blogs.msdn.com/b/michkap/archive/2005/08/에 따르면 다음은 Const, Declare 필요없이 맨손으로 뼈 등의 선언은 21/454340.aspx) VB6 RichTextBox 컨트롤은 실제로 유니 코드를 지원하지 않습니다. 그것은 제 3 자의 통제의 한 벌에 $ 399를 떨어 뜨리기 위하여 건의하는 것을 계속한다, 그러나 무료로 VB.NET Express 판을 다운로드하는 IMO는 아마 더 나은 선택권 일 것입니다. –

+0

이 질문을 참조하십시오 : [VB6에서 유니 코드 텍스트를 표시하는 가장 좋은 옵션은 무엇입니까] (http://stackoverflow.com/questions/540361/whats-the-best-option-to-display-unicode-text-hebrew-etc -in-vb6) – MarkJ

+0

@ 마흐디 : 제발, "고맙습니다"통지로 질문을 대체하지 마십시오. 이 사이트는 비슷한 이슈를 가진 다른 사람들을 돕는 것에 관한 것이므로 질문을 삭제하면 쓸모가 없습니다. 후속 조치를 원할 경우 승인 된 답변에 대한 의견을 말하고 왼쪽의 녹색 팁을 클릭하십시오. – Deanna

답변

1

정말 쉽지.

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 
관련 문제