|
Вернулся
1748 / 644 / 45
Регистрация: 10.09.2021
Сообщений: 2,786
|
|
Как создать на VB6 уникодный InputBox? Чтобы при вводе в InputBox можно было получать китайские иероглифы и так далее15.11.2023, 22:50. Показов 5075. Ответов 51
Как создать на VB6 уникодный InputBox? Чтобы при вводе в InputBox можно было получать китайские иероглифы и так далее. Текстовое поле InputBox'а, что самое интересное и так позволяет вводить китайщину, но вот на выходе функции мы получаем уже знаки вопросов...
Добавлено через 54 минуты Хотите чудо? InputBox создаётся с ANSI-окнами, и с ANSI текстовым полем, без стилизации окна манифестом... Со стилизацией манифестом уже создаётся Unicode окна и уникодное текстовое поле ввода... Это очень странно и меня очень шокировало... Добавлено через 15 минут Таким образом, уникодный InputBox будет работать только если стилизовать программу, применить стили красивостей окон. В противном случае пришлось бы уничтожать старый Edit через DestroyWindow и поверх создавать новое текстовое поле через CreateWindowExW... Чтобы работало и без стилей...
0
|
|
| 15.11.2023, 22:50 | |
|
Ответы с готовыми решениями:
51
Можно ли настроить Inputbox, чтобы не блокировалась книга и можно было изменять данные в ячейках? как сделать чтоб при вводе в inputbox вводились толька символы 0.123456789 Обработать событие OnKeyPress при вводе целого числа в Edit так, чтобы можно было вставить только один знак минус |
|
Вернулся
1748 / 644 / 45
Регистрация: 10.09.2021
Сообщений: 2,786
|
|
| 18.11.2023, 09:40 [ТС] | |
|
К сожалению, я не знаю исходного кода функции InputBox, но можно самому легко догадаться, что она вызывает функцию DialogBoxParamA, которая создает модальное диалоговое окно из ресурса шаблона диалогового окна.
0
|
|
|
Вернулся
1748 / 644 / 45
Регистрация: 10.09.2021
Сообщений: 2,786
|
|||||||||||
| 18.11.2023, 10:12 [ТС] | |||||||||||
|
Да, для вызова InputBox используется именно DialogBoxParam. Я сейчас проэксперементировал и реально смог вызвать это самое заветное диалоговое окно InputBox из ресурсов msvbvm60.dll. А это значит, что я на правильном пути понимания исходного кода функции InputBox.
Пример (модуль):
0
|
|||||||||||
|
Вернулся
1748 / 644 / 45
Регистрация: 10.09.2021
Сообщений: 2,786
|
|
| 18.11.2023, 14:54 [ТС] | |
|
testuser2, как так получается, что у тебя инпутбокс мой не отображал китайщину, а у людей, говорят, VBA уже встроенный инпутбокс поддерживает уникод? Вот здесь говорят: InputBox с поддержкой юникода я специально тему там создал для опроса VBA'шников)
0
|
|
|
Вернулся
1748 / 644 / 45
Регистрация: 10.09.2021
Сообщений: 2,786
|
||||||||||||||||
| 19.11.2023, 01:41 [ТС] | ||||||||||||||||
|
Ура!!! Наконец-таки, я создал новый модуль для вызова юникодного InputBox'а. Теперь InputBox вызывается по совершенно новой технологии, минуя саму функцию InputBox, вызывается всего одной строкой кода:
Но никто ещё, кроме меня, не написал это правильно через простую функцию DialogBoxParam. Надо будет иностранцам кстати тоже подогнать этот код, а то они там на форуме до сих пор обсуждают этот "костыль" через хуки и субклассирование. А мой юникодный InputBox работает даже без манифестов!!! Это значительный прорыв вообще. Я очень рад, что я это создал))) Код нового модуля:
0
|
||||||||||||||||
|
Вернулся
1748 / 644 / 45
Регистрация: 10.09.2021
Сообщений: 2,786
|
||||||
| 19.11.2023, 02:53 [ТС] | ||||||
|
Всё ещё проще, оказывается, есть скрипт через CreateObject прочитал на иностранном форуме, но диалог вызывается не модальным:
0
|
||||||
| 19.11.2023, 05:57 | |||||||
|
Добавлено через 1 минуту Ошибка
А вот "JScript" подхватывает "на ура"
0
|
|||||||
|
Вернулся
1748 / 644 / 45
Регистрация: 10.09.2021
Сообщений: 2,786
|
||||||
| 19.11.2023, 13:05 [ТС] | ||||||
|
testuser2, попробуй этот новый код (уже теперь модальный InputBox):
Надо кстати ещё проверить, будет ли этот код работать в Xp...
0
|
||||||
|
Вернулся
1748 / 644 / 45
Регистрация: 10.09.2021
Сообщений: 2,786
|
|
| 19.11.2023, 13:47 [ТС] | |
|
testuser2, тогда мой модуль на API будет весьма кстати для VBA
0
|
|
| 19.11.2023, 14:06 | ||||||
|
HackerVlad, на vba же есть Application.InputBox. Вот со скрипт-контролом, я что-то не пойму. Я помню, как-то видел у Catstail'а была интересная статья на Хабре, сейчас нашел ее и там как раз-таки, речь идет про VBA и MSScriptControl, то беж у него работает. Проверю сейчас на x64 vba..
Добавлено через 8 минут На x64 также не работает, на раннем связывании в том числе
0
|
||||||
|
Вернулся
1748 / 644 / 45
Регистрация: 10.09.2021
Сообщений: 2,786
|
|
| 19.11.2023, 14:48 [ТС] | |
|
testuser2, ну и хрен с ним...
Добавлено через 43 секунды это уже отдельная тема почему в VBA не работает "MSScriptControl.ScriptControl"
0
|
|
|
Вернулся
1748 / 644 / 45
Регистрация: 10.09.2021
Сообщений: 2,786
|
|
| 29.11.2023, 11:06 [ТС] | |
|
Оказывается тема продолжается, так как ВанГогИгрок меня озадачил своим новым кодом, посмотрите вот: https://www.vbforums.com/showt... ost5624133
Он изучил мой код и написал какой-то новый код с использованием некого трамплина. Я если честно удивлён его новому решению. Добавлено через 1 минуту Как я понял он решил перехватывать функцию DialogBoxParamA Добавлено через 2 минуты Скоро придётся писать третью версию модуля, чувствую... Добавлено через 6 минут Неужели можно в любом месте кода просто писать InputBox вызывать родной InputBox и перехватывать функцию DialogBoxParamA какими-то трамплинами и обрабатывать... Для уникодности... Добавлено через 1 час 54 минуты ВанГогИгрок не учёл самого главного: его код не работает без манифеста, поэтому не буду я пользоваться его кодом. Он перехватывает функцию DialogBoxParamA и перенаправляет на свою оконную процедуру диалогового окна, с помощью ассемблерной вставки по моему, но это не важно, важно, что его код не работает без манифестов. Поэтому какие бы он там трамплины не использовал его код всё равно хуже, а он мне ответил, что это не соревнование аххахахаха Добавлено через 12 секунд Но зато третью версию мне писать не надо)))
1
|
|
|
Вернулся
1748 / 644 / 45
Регистрация: 10.09.2021
Сообщений: 2,786
|
|
| 29.11.2023, 19:02 [ТС] | |
|
Я указал ему на ошибку, Вангогу, и он исправил её. Теперь у него и без манифестов юникод работает. Хм, а ведь у него совсем другой алгоритм. Он перехватывает функцию DialogBoxParamA через хук и перенаправляет уже на DialogBoxParamW функцию. Я никогда раньше не работал с хуками перехвата функций, поэтому это интересно.
0
|
|
|
Вернулся
1748 / 644 / 45
Регистрация: 10.09.2021
Сообщений: 2,786
|
|
| 03.12.2023, 23:34 [ТС] | |
|
Помогите, пожалуйста, разобраться с тем как именно код майкрософта "центрирует" инпутбокс на экране. Если это можно назвать центровкой конечно, он выше центра располагается окно диалоговое. Вот я прилагаю свои наброски, с использованием трамплина хука перехвата АПИ-функции.
0
|
|
|
Вернулся
1748 / 644 / 45
Регистрация: 10.09.2021
Сообщений: 2,786
|
|
| 03.12.2023, 23:55 [ТС] | |
|
Чего я хочу? Я хочу вскрыть исходный код майкрософта, именно функции обратного вызова DlgProc, именно в секции WM_INITDIALOG, с целью, чтобы узнать как именно майкрософт "центрирует" это окно. Ведь положение окна на экране получается не ровно по центру, а чуть выше чем по центру, именно эту формулу мне никак не удалось ещё раскрыть.
Добавлено через 50 секунд Я и так написал всё почти правильно, почти как в майкрософте написали когда-то. Но не имея исходников майкрософта самому догадываться до этого всего очень-очень сложно. Добавлено через 4 минуты Просто я не хочу как ВанГогИгрок использовать трамплины эти и перенаправления на майкрософтовский код а потом его второй же раз изменять... У него сначала задаётся например текст окна и надписей в оригинальной функции обратного вызова майкрософтовским кодом в WM_INITDIALOG а потом он переписывает своим кодом в WM_SHOWWINDOW в результате текст надписей задаётся целых два раз - это неправильный подход. Правильный подход как у меня изначально во второй версии модуля, сразу исходный код инпутбокса без вызова майкрософтовского кода вообще. Ну конечно если вызывать майкрософтовский код именно то тогда центровка будет как надо... Но я не хочу это делать как делает ВанГогИгрок с vbforums.
0
|
|
|
Вернулся
1748 / 644 / 45
Регистрация: 10.09.2021
Сообщений: 2,786
|
|
| 29.01.2024, 12:52 [ТС] | |
|
0
|
|
|
dive
4990 / 4743 / 850
Регистрация: 13.04.2015
Сообщений: 9,976
|
|
| 29.01.2024, 13:18 | |
|
0
|
|
| 29.01.2024, 14:44 | |||
|
1
|
|||
|
Вернулся
1748 / 644 / 45
Регистрация: 10.09.2021
Сообщений: 2,786
|
|
| 30.01.2024, 01:04 [ТС] | |
|
Советы не программировать на VB6 меня не устраивают, а вот тебе testuser2 спасибо, но как-то это всё замудрёно ты написал конечно :-)
Добавлено через 1 минуту В этой теме у меня уже есть на самом деле много ответов как вызвать InputBox с поддержкой юникода. Просто я не всё до конца смог доработать. Хук с помощью SetWinEventHook штука хорошая конечно, но от этого хука, я помню, я уже отказался. Так как я нашёл способ самому вызывать диалоговое окно InputBox и я уже говорил об этом. Добавлено через 1 минуту Я лишь не нашёл того самого кода, который каким-то образом, центрирует инпутбокс не в самом центре экрана, а как бы чуть выше центра. Я не разгадал эту формулу ещё.
0
|
|
| 30.01.2024, 01:04 | |
|
Можно ли так сделать так,чтобы предыдущего окно закрывалось при нажатие кнопки далее
Создать класс из процедуры так, чтобы в нём при вызове можно было менять направление отсчёта счётчика цикла Как создать файл DLL так, чтобы его можно было подключить к VBA Excel? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Алиса нашла кучу ошибок компиляции и запуска в проекте, который без проблем компилировался и запускался)))
anaschu 30.06.2026
Я пока посмеюся, но завтра проверю. А вообще интерсно. Дал алисе файл, в котором точно нет ошибок компиляции и запуска, и попросил их найти. Нашла кучу)))
Критические ошибки, мешающие компиляции и. . .
|
сукцессия 16. Общий обзор, в основном что бы другие ии поняли
anaschu 29.06.2026
# Передаточный документ: модель микоризной сукцессии (для нового чата)
Этот документ предназначен для того, чтобы новый чат Claude мог продолжить
работу без необходимости заново разбираться в. . .
|
сукцессия 15 неявная схема
anaschu 29.06.2026
Алиса
Калибровка параметров симбиотической модели: технический обзор
Содержание:
Введение
Постановка проблемы
Технические аспекты реализации
Процесс внедрения изменений
|
сукцессия 14. Обновленная схема модели
anaschu 28.06.2026
ГЛОБАЛЬНАЯ ОПИСАТЕЛЬНАЯ СПЕЦИФИКАЦИЯ ЭКОСИСТЕМНОЙ МОДЕЛИ «SOIL CHEMISTRY & MYCORRHIZA 2. 0»
https:/ / ibb. co/ NnkGpfMd
Представленная интегрированная схема описывает непрерывную нелинейную. . .
|
|
сукцессия 13. Питон модель трехзонного мицелия, пока что в основном арбускулярного
anaschu 28.06.2026
## Разработка агентной модели микоризной сукцессии: от выявления артефактов к созданию комплексной системы
### Аннотация
Представлено исследование по разработке агентной модели микоризной. . .
|
сукцессия 12. краткий список проверок модели перед запуском.
anaschu 27.06.2026
Скрытые отказы в моделях систем динамики (SD-models) экологических систем: два случая из практики
Контекст
Разбирался прототип модели систем динамики (SD-модели) микоризной сукцессии: пять. . .
|
Сукцессия 11. Проверка орудий перед войной: разработка через тестирование
anaschu 27.06.2026
Как не дать модели соврать самой себе: проверки для симуляции микоризной сукцессии
Введение
Когда вы строите математическую модель живой системы — грибов, растений, почвы — главная опасность. . .
|
10 сукцессия. Питон код войны грибов и растений
anaschu 27.06.2026
import numpy as np
class PlantAgent:
def __init__(self, name, strategy, initial_biomass):
self. name = name
self. strategy = strategy # "greedy" (широколиственные) или. . .
|