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

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

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

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

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

textual
Листинг программы
  1. Option Explicit
  2.  
  3. Private Sub Form_Load()
  4.     lpPrevWndProc = SetWindowLong(Me.hwnd, GWL_WNDPROC, AddressOf WndProc)
  5. End Sub
  6. Private Sub Form_Resize()
  7.     If Me.WindowState <> vbMinimized Then txtData.Move 5, 5, Me.ScaleWidth - 10, Me.ScaleHeight - 10
  8. End Sub
  9. Private Sub Form_Unload(Cancel As Integer)
  10.     SetWindowLong Me.hwnd, GWL_WNDPROC, lpPrevWndProc
  11. End Sub
  12. Private Sub mnuExit_Click()
  13.     Unload Me
  14. End Sub
  15. Private Sub mnuPatch_Click()
  16.     Dim fName As String, bName As String, sSrc As String, sUTF8() As Byte, hUpdate As Long, ret As Long
  17.     fName = GetFile(Me.hwnd)
  18.     If Len(fName) > 0 And Len(txtData.Text) > 0 Then
  19.         bName = fName
  20.         Do
  21.             bName = Left$(bName, InStrRev(bName, ".") - 1) & "_backup.exe"
  22.         Loop Until CopyFile(StrPtr(fName), StrPtr(bName), True)     ' Пока не добъемся нужного имени
  23.        FileCopy fName, Left$(fName, InStrRev(fName, ".") - 1) & "_backup.exe"
  24.         hUpdate = BeginUpdateResource(StrPtr(fName), False)
  25.         If hUpdate = 0 Then MsgBox "Ошибка": Exit Sub
  26.         ' В UTF8
  27.        sSrc = txtData.Text
  28.         ret = WideCharToMultiByte(CP_UTF8, 0, StrPtr(sSrc), Len(sSrc), 0, 0, 0, 0)
  29.         ReDim sUTF8(ret - 1)
  30.         WideCharToMultiByte CP_UTF8, 0, StrPtr(sSrc), Len(sSrc), sUTF8(0), ret, 0, 0
  31.         ret = UpdateResource(hUpdate, 24, 1, 0, sUTF8(0), ret)
  32.         If ret = 0 Then MsgBox "Ошибка"
  33.         EndUpdateResource hUpdate, False
  34.     End If
  35. End Sub

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


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

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

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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут