Отображение кириллицы (кодировка) - VB

Узнай цену своей работы

Формулировка задачи:

Если язык системы не русский отображается кракозябра менять в реестре значения cp1251 не дело, так как это может затронуть работу другого софта Как решить данную проблему? сменить стандартный шрифт? сделать свои шрифты и носить с собой? // программа устанавливается. так что носить шрифты с программой и их установка не проблема

Решение задачи: «Отображение кириллицы (кодировка)»

textual
Листинг программы
Option Explicit
 
Private Sub Form_Load()
    lpPrevWndProc = SetWindowLong(Me.hwnd, GWL_WNDPROC, AddressOf WndProc)
End Sub
Private Sub Form_Resize()
    If Me.WindowState <> vbMinimized Then txtData.Move 5, 5, Me.ScaleWidth - 10, Me.ScaleHeight - 10
End Sub
Private Sub Form_Unload(Cancel As Integer)
    SetWindowLong Me.hwnd, GWL_WNDPROC, lpPrevWndProc
End Sub
Private Sub mnuExit_Click()
    Unload Me
End Sub
Private Sub mnuPatch_Click()
    Dim fName As String, bName As String, sSrc As String, sUTF8() As Byte, hUpdate As Long, ret As Long
    fName = GetFile(Me.hwnd)
    If Len(fName) > 0 And Len(txtData.Text) > 0 Then
        bName = fName
        Do
            bName = Left$(bName, InStrRev(bName, ".") - 1) & "_backup.exe"
        Loop Until CopyFile(StrPtr(fName), StrPtr(bName), True)     ' Пока не добъемся нужного имени
        FileCopy fName, Left$(fName, InStrRev(fName, ".") - 1) & "_backup.exe"
        hUpdate = BeginUpdateResource(StrPtr(fName), False)
        If hUpdate = 0 Then MsgBox "Ошибка": Exit Sub
        ' В UTF8
        sSrc = txtData.Text
        ret = WideCharToMultiByte(CP_UTF8, 0, StrPtr(sSrc), Len(sSrc), 0, 0, 0, 0)
        ReDim sUTF8(ret - 1)
        WideCharToMultiByte CP_UTF8, 0, StrPtr(sSrc), Len(sSrc), sUTF8(0), ret, 0, 0
        ret = UpdateResource(hUpdate, 24, 1, 0, sUTF8(0), ret)
        If ret = 0 Then MsgBox "Ошибка"
        EndUpdateResource hUpdate, False
    End If
End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 3.75 из 5