Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.77/22: Рейтинг темы: голосов - 22, средняя оценка - 4.77
Модератор
Эксперт .NET
4203 / 3287 / 497
Регистрация: 27.01.2014
Сообщений: 6,033
1

Как в Английской версии Windows заставить мою форму и все контролы отображать кириллицу

11.02.2014, 19:24. Показов 4046. Ответов 36
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Как в Английской версии Windows заставить мою форму и все контролы отображать кириллицу и чтоб "Sendkeys" мог передавайть кириллицу в любое другое внешнее окно ВНЕ МОЕГО ПРОЕКТА.

P.S. пишу Виртуальную клавиатуру для двух языков Рус и Англ но преднпзначена будет для работы на чистой англ системе... Локализацию системы "МЕНЯТЬ НЕЛЬЗЯ" - запрещено... ищу другой путь...

Looking for assistance
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.02.2014, 19:24
Ответы с готовыми решениями:

Как заставить браузер отображать кириллицу в UTF-8 используя send()
Здравствуйте, подскажите как передать браузеру кириллические буквы таким образом, чтобы при...

Установка английской версии Windows XP
Приветствую вас уважаемые форумчане! У меня есть небольшая просьба, вопрос в том что мне нужна...

Где скачать Windows 10 в английской версии?
Встала проблема того, что некоторые драйвера, да и приложения наотрез отказываются понимать русскую...

Как заставить контролы внутри StackPanel заполнить все доступное им пространство
День добрый С XAML почти не работал, подскажите как заставить контролы внутри StackPanel...

36
Модератор
Эксперт .NET
4203 / 3287 / 497
Регистрация: 27.01.2014
Сообщений: 6,033
12.02.2014, 09:23  [ТС] 21
Author24 — интернет-сервис помощи студентам
Цитата Сообщение от Юрий Комар Посмотреть сообщение
Работает!!! Спасибо за совет...
+ копирует и вставляет кирилицу на ура...
То что мне надо... все. Теперь можно отказаться отUniSuiteFree... )
0
Модератор
9724 / 3685 / 871
Регистрация: 22.02.2013
Сообщений: 5,530
Записей в блоге: 78
12.02.2014, 12:20 22
Лучший ответ Сообщение было отмечено как решение

Решение

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Option Explicit
 
Private Declare Function CreateWindowEx Lib "user32" Alias "CreateWindowExW" (ByVal dwExStyle As Long, ByVal lpClassName As Long, ByVal lpWindowName As Long, ByVal dwStyle As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hWndParent As Long, ByVal hMenu As Long, ByVal hInstance As Long, lpParam As Any) As Long
Private Declare Function SendMessageW Lib "user32" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
 
Private Const WS_EX_CLIENTEDGE = &H200&
Private Const WS_CHILD = &H40000000
Private Const WS_HSCROLL = &H100000
Private Const WS_VSCROLL = &H200000
Private Const ES_AUTOHSCROLL = &H80&
Private Const ES_AUTOVSCROLL = &H40&
Private Const ES_LEFT = &H0&
Private Const ES_MULTILINE = &H4&
Private Const WS_VISIBLE = &H10000000
Private Const WM_SETFONT = &H30
 
Dim hEdit As Long
 
Private Sub Form_Load()
    Dim Fnt As IFont
    hEdit = CreateWindowEx(WS_EX_CLIENTEDGE, StrPtr("EDIT"), 0, WS_CHILD Or WS_VISIBLE Or ES_LEFT Or _
                         ES_MULTILINE Or ES_AUTOHSCROLL Or ES_AUTOVSCROLL Or WS_VSCROLL Or WS_HSCROLL, _
                         5, 5, ScaleX(Me.ScaleWidth, Me.ScaleMode, vbPixels) - 10, _
                         ScaleY(Me.ScaleHeight, Me.ScaleMode, vbPixels) - 10, Me.hwnd, 0, 0, ByVal 0&)
    Set Fnt = Me.Font
    SendMessageW hEdit, WM_SETFONT, Fnt.hFont, ByVal 0
End Sub
Без всяких библиотек
3
Модератор
Эксперт .NET
4203 / 3287 / 497
Регистрация: 27.01.2014
Сообщений: 6,033
12.02.2014, 19:36  [ТС] 23
Цитата Сообщение от The trick Посмотреть сообщение
Без всяких библиотек
Спасибо. Думаю сработает... сегодня проверю... И отпишу как себя ведет на Английской системе...
ну и в дополнение - Добавил пару строчек посылки Текстовому полю некоевого текста через strconv(), тоже для проверки...

Вот так:
Visual Basic
1
2
3
Dim a As String
    a = StrConv(Me.Caption, vbFromUnicode) & "  " & StrConv(Me.Caption, vbUnicode)
    SendMessageW hEdit, WM_SETTEXT, -1, ByVal a
ну и прилагаю исходник:
Вложения
Тип файла: rar Программно создать Unicodный textBox.rar (1.4 Кб, 6 просмотров)
0
Модератор
Эксперт .NET
4203 / 3287 / 497
Регистрация: 27.01.2014
Сообщений: 6,033
12.02.2014, 20:46  [ТС] 24
Цитата Сообщение от Юрий Комар Посмотреть сообщение
WM_SETTEXT
незабываем объявить константу

Visual Basic
1
Private Const WM_SETTEXT = &HC
Добавлено через 1 час 6 минут
Блин не пошло... посылал через strconv("свой текст", vbUnicode) - бяку пишет...
0
Модератор
9724 / 3685 / 871
Регистрация: 22.02.2013
Сообщений: 5,530
Записей в блоге: 78
12.02.2014, 21:49 25
Пробуй так
Visual Basic
1
2
    Text = "Êèðèëëèöà" & vbNullChar
    SendMessageW hEdit, WM_SETTEXT, 0, ByVal StrPtr(Text)
0
Модератор
Эксперт .NET
4203 / 3287 / 497
Регистрация: 27.01.2014
Сообщений: 6,033
12.02.2014, 22:20  [ТС] 26
Цитата Сообщение от The trick Посмотреть сообщение
Пробуй так
Visual Basic
1
2
    Text = "Êèðèëëèöà" & vbNullChar
    SendMessageW hEdit, WM_SETTEXT, 0, ByVal StrPtr(Text)
Не получается... неважно, беру ли я из ресурсов или в переменную загоняю. Рисует одни и те же йероглифы.
Миниатюры
Как в Английской версии Windows заставить мою форму и все контролы отображать кириллицу   Как в Английской версии Windows заставить мою форму и все контролы отображать кириллицу  
0
Модератор
Эксперт .NET
4203 / 3287 / 497
Регистрация: 27.01.2014
Сообщений: 6,033
12.02.2014, 22:21  [ТС] 27
А пардон, я не тот sendmessage вызвал.
Щас перепроверю.
0
Модератор
Эксперт .NET
4203 / 3287 / 497
Регистрация: 27.01.2014
Сообщений: 6,033
12.02.2014, 22:31  [ТС] 28
Неа... не получается.
На скрине то что писал:
Миниатюры
Как в Английской версии Windows заставить мою форму и все контролы отображать кириллицу  
0
Модератор
9724 / 3685 / 871
Регистрация: 22.02.2013
Сообщений: 5,530
Записей в блоге: 78
12.02.2014, 22:33 29
А с Forms 2 получается этот код? Покажи скрин что печатается вместо символов
0
Модератор
Эксперт .NET
4203 / 3287 / 497
Регистрация: 27.01.2014
Сообщений: 6,033
12.02.2014, 22:38  [ТС] 30
В формс2 не проверял еще...
Вот скрин.
Миниатюры
Как в Английской версии Windows заставить мою форму и все контролы отображать кириллицу  
0
Модератор
Эксперт .NET
4203 / 3287 / 497
Регистрация: 27.01.2014
Сообщений: 6,033
12.02.2014, 22:54  [ТС] 31
Формс2 - абсолютно одинаково себя ведет...
Миниатюры
Как в Английской версии Windows заставить мою форму и все контролы отображать кириллицу  
0
Модератор
9724 / 3685 / 871
Регистрация: 22.02.2013
Сообщений: 5,530
Записей в блоге: 78
12.02.2014, 23:03 32
Странно, шрифт поддерживает русские символы? Выбери Arial Unicode. Скомпилируй мне пример в EXE и скинь я посмотрю. Выставить компиляцию в Native код. Выстави такие настройки
Миниатюры
Как в Английской версии Windows заставить мою форму и все контролы отображать кириллицу  
0
Модератор
Эксперт .NET
4203 / 3287 / 497
Регистрация: 27.01.2014
Сообщений: 6,033
12.02.2014, 23:08  [ТС] 33
Цитата Сообщение от The trick Посмотреть сообщение
Странно, шрифт поддерживает русские символы? Выбери Arial Unicode. Скомпилируй мне пример в EXE и скинь я посмотрю. Выставить компиляцию в Native код. Выстави такие настройки
Щас сделаю.
Вобщем га том компе, где я делаю-там все работает... а на англ винде где локализация стоит английская - не хочет.
0
Модератор
Эксперт .NET
4203 / 3287 / 497
Регистрация: 27.01.2014
Сообщений: 6,033
12.02.2014, 23:17  [ТС] 34
Otpravil kak i prosil. S russkoj Locale vse rabotaet- na English - NE XOCHET
Вложения
Тип файла: zip VB240.zip (13.5 Кб, 10 просмотров)
0
Модератор
9724 / 3685 / 871
Регистрация: 22.02.2013
Сообщений: 5,530
Записей в блоге: 78
12.02.2014, 23:21 35
Цитата Сообщение от Юрий Комар Посмотреть сообщение
Otpravil kak i prosil. S russkoj Locale vse rabotaet- na English - NE XOCHET
У тебя шрифт не поддерживает кириллические символы. Поставь шрифт, все будет работать.
0
Модератор
Эксперт .NET
4203 / 3287 / 497
Регистрация: 27.01.2014
Сообщений: 6,033
12.02.2014, 23:36  [ТС] 36
Цитата Сообщение от The trick Посмотреть сообщение
Поставь шрифт, все будет работать.
Da, vse zarabotalo. Thanks a lot for your kind assistance... )) Xotya shrift pisal chto est' Cyrilic! Nu da ladno.

Toest' taki8m obrazom i v standartnij Control mozhno Cyrylic peredat'?

Добавлено через 5 минут
Цитата Сообщение от Юрий Комар Посмотреть сообщение
v standartnij Control mozhno Cyrylic peredat'
A net - tut uzhe ne vse tak gladko...


A kak mne COLOUR pomenyat'? ne mogu soobrazit'? hEdit - prozrachnij.!
0
Модератор
9724 / 3685 / 871
Регистрация: 22.02.2013
Сообщений: 5,530
Записей в блоге: 78
12.02.2014, 23:48 37
Цитата Сообщение от Юрий Комар Посмотреть сообщение
Toest' taki8m obrazom i v standartnij Control mozhno Cyrylic peredat'?
Этого точно не смогу сказать, но ты можешь попробывать вызывать SetThreadLocale
Цитата Сообщение от Юрий Комар Посмотреть сообщение
A kak mne COLOUR pomenyat'? ne mogu soobrazit'? hEdit - prozrachnij.!
Надо сабклассить окно родителя и отлавливать сообщение WM_CTLCOLOREDIT
1
12.02.2014, 23:48
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.02.2014, 23:48
Помогаю со студенческими работами здесь

Как заставить семерку отображать в диспетчере задач все 6 ядер,а не пять?
Здравствуйте. Имеются матплата M4A87TD/USB 3.0 и процессор amd phenom 2 x 6 1055 t processor 2.8...

Как отображать кириллицу в TextBox?
Добрый вечер. Я ввожу в TextBox строку на русском языке, в программе эта строка обрабатывается,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
37
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru