Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 5.00/11: Рейтинг темы: голосов - 11, средняя оценка - 5.00
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769

Как отцентрировать своё окно/форму, точно так же, как центрируется стандартный инпутбокс в VB6?

30.01.2024, 13:04. Показов 2655. Ответов 29
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Как "отцентрировать" своё собственное окно или форму, точно так же, как центрируется стандартный инпутбокс в VB6?

Помогите пожалуйста, решить эту непосильную задачу для меня, бьюсь уже ни один месяц и всё никак не могу решить эту наисложнейшую задачу. Так и не смог разгадать этот алгоритм центровки стандартного инпутбокса.

Как я лично это вижу тут есть два пути решения этой сложной задачи:

1. Вскрыть программный код майкрософта инициализации диалогового окна инпутбокса и найти нужный код центровки (это оказалось для меня сложно так и не смог)
2. Придумать самому этот код, эту формулу, чтобы было точно так же как и у майкрософта, чтобы окно "центрировалось" как надо
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
30.01.2024, 13:04
Ответы с готовыми решениями:

Как отцентрировать созданное окно?
Загружается одно окно и создает небольшое второе. Как сделать так, чтобы оно было по центру монитора? Я выравниваю его с помощью left и...

Как создать в WPF точно такое же окно?
Нужно создать окно вот такой формы. Нужен XAML код, с Arcsegment-ом слишком круглая получается, а с помощью Border.CornerRadius...

SefSharp. Как закрыть свое окно?
Всем привет. C# SefSharp. Вот так я ищу на странице нужную мне ссылку и кликаю по ней: chrome.ExecuteScriptAsync( ...

29
 Аватар для Mikle Quits
769 / 286 / 17
Регистрация: 21.01.2023
Сообщений: 456
30.01.2024, 13:52
HackerVlad, а что, там центрирование какое-то особое?
Навскидку, как-то так:
Visual Basic
1
2
3
Private Sub Form_Load()
  Move (Screen.Width - Width) \ 2, Screen.Height \ 4 + (Height - ScaleHeight) - 2 * Screen.TwipsPerPixelY
End Sub
В настройках формы:
StartUpPosition: 0 - Manual
ScaleMode: Twip
1
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
30.01.2024, 13:54  [ТС]
Цитата Сообщение от Mikle Quits Посмотреть сообщение
там центрирование какое-то особое
Да, особое, внимательно посмотри на картинку
Миниатюры
Как отцентрировать своё окно/форму, точно так же, как центрируется стандартный инпутбокс в VB6?  
0
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
30.01.2024, 13:57  [ТС]
Mikle Quits, твой код интересный кстати, так как он не центрирует идеально по центру экрана или идеально по центру рабочей области!
0
sleep
 Аватар для I can
4931 / 4593 / 840
Регистрация: 13.04.2015
Сообщений: 9,753
30.01.2024, 14:04
Цитата Сообщение от HackerVlad Посмотреть сообщение
Да, особое,
В Net есть пояснение к этому параметру
1
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
30.01.2024, 14:08  [ТС]
Mikle Quits, а ведь твой код оказался почти правильным, на удивление

Добавлено через 1 минуту
Оказалось лишь на 8 пикселей ниже чем надо
0
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
30.01.2024, 14:11  [ТС]
Mikle Quits, почти угадал эту формулу, осталось подправить как-то...
Миниатюры
Как отцентрировать своё окно/форму, точно так же, как центрируется стандартный инпутбокс в VB6?  
0
 Аватар для Mikle Quits
769 / 286 / 17
Регистрация: 21.01.2023
Сообщений: 456
30.01.2024, 14:12
Цитата Сообщение от HackerVlad Посмотреть сообщение
Оказалось лишь на 8 пикселей ниже чем надо
А на моих двух (разных по высоте) мониторах в точности попали. Возможно, там есть зависимость от стиля.
0
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
30.01.2024, 14:13  [ТС]
Странно
0
 Аватар для Mikle Quits
769 / 286 / 17
Регистрация: 21.01.2023
Сообщений: 456
30.01.2024, 14:13
Там "2 * Screen.TwipsPerPixelY" - это и есть сдвиг на 2 пикселя вверх. Меняй 2 на другое число.
0
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
30.01.2024, 14:23  [ТС]
Mikle Quits, посмотри пожалуйста мой проект
Вложения
Тип файла: zip Для Mikle Quits.zip (1.6 Кб, 7 просмотров)
0
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
30.01.2024, 14:47  [ТС]
Цитата Сообщение от Mikle Quits Посмотреть сообщение
Меняй 2 на другое число.
Написал -10 и заработало как надо. Но, это так только на моём экране будет -10. Понимаешь? Я же говорил, что эту формулу очень сложно разгадать.

Добавлено через 2 минуты
В проекте, что я скинул видно, что даже у самого майкрософта немного разные коды центровки инпутбоксов. В двух разных инпутбоксах. Одни из VB второй из скриптов системы.

Добавлено через 4 минуты
Если бы по формуле майкрософта окно располагалось бы идеально на уровне трети высоты экрана то всё было бы понятно. А тут слово "примерно" на уровне трети высоты экрана очень смцщает. Непонятна эта формула. Вот что значит примерно, и как правильно определяется эта высота у них - непонятно.

Добавлено через 11 минут
10 долларов тому кто разгадает эту формулу!
0
sleep
 Аватар для I can
4931 / 4593 / 840
Регистрация: 13.04.2015
Сообщений: 9,753
30.01.2024, 14:57
Цитата Сообщение от HackerVlad Посмотреть сообщение
10 долларов тому кто разгадает эту формулу!
Move (Screen.Width - Width) \ 2, Screen.Height \ 3

Добавлено через 1 минуту
Цитата Сообщение от HackerVlad Посмотреть сообщение
слово "примерно"
Не все разрешения по вертикали делятся ровно на 3
0
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
30.01.2024, 14:57  [ТС]
Цитата Сообщение от I can Посмотреть сообщение
Move (Screen.Width - Width) \ 2, Screen.Height \ 3
Думаешь я не пробовал этот код? Конечно уже пытался
0
 Аватар для Mikle Quits
769 / 286 / 17
Регистрация: 21.01.2023
Сообщений: 456
30.01.2024, 14:59
Цитата Сообщение от HackerVlad Посмотреть сообщение
даже у самого майкрософта немного разные коды центровки инпутбоксов
Так а что тогда угадывать? С одним из них всё равно не совпадёт.
У меня твой пример первая кнопка даёт на 4 ниже, третья на 3 выше.
0
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
30.01.2024, 15:04  [ТС]
Цитата Сообщение от Mikle Quits Посмотреть сообщение
третья на 3 выше
А у меня третья совпадает, видишь как и фиг пойми эту формулу вообще

Добавлено через 39 секунд
Мне нужно чтобы было совпадало с третьей кнопкой Command3 там родной инпутбокс

Добавлено через 49 секунд
Когда я написал - 10 вместо твоего -2 тогда начало ровно совпадать, но формула не разгадана до сих пор

Добавлено через 44 секунды
Задача: чтобы на всех экранах, на всех разных компьютерах окно центрировалось точно так же как и родной InputBox по высоте
0
 Аватар для Mikle Quits
769 / 286 / 17
Регистрация: 21.01.2023
Сообщений: 456
30.01.2024, 15:05
Нужна статистика разрешений экрана и соответствующих позиций (Top) инпутбокса.
0
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
30.01.2024, 18:17  [ТС]
У меня при 1440х900 работает как надо например. Совпадает. Стоит мне только поменять разрешение экрана на 1368х768 сразу уже идёт сдвиг на несколько пикселей.

Добавлено через 1 минуту
Уже надо не -10, а уже надо -20

Добавлено через 58 секунд
-21 даже точнее

Добавлено через 53 секунды
Значит при 900 надо -10 а при 768 высоты надо уже -21

Добавлено через 4 минуты
Mikle Quits, попробуй поменять разрешения экрана у себя и убедись что уже по другому будет сдвиг, как я и говорил формула не разгадана
0
sleep
 Аватар для I can
4931 / 4593 / 840
Регистрация: 13.04.2015
Сообщений: 9,753
30.01.2024, 18:21
Цитата Сообщение от HackerVlad Посмотреть сообщение
1368х768
Верхний левый угол инпутбокса координата Y = 193 пикселя.
0
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
30.01.2024, 18:31  [ТС]
I can, лучше Top посмотри, какой Left мне всё равно

Добавлено через 23 секунды
Я не могу разгадать формулу Top'а

Добавлено через 6 минут
Итак, при разрешении 900 по высоте у меня идёт отступ Top 241 пиксель

Добавлено через 1 минуту
При 768 Top идёт 197

Добавлено через 21 секунду
Какая тут взаимосвязь и логика вообще чтобы формулу эту раскусить я вообще не понимаю
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
30.01.2024, 18:31
Помогаю со студенческими работами здесь

Как вызвать свое диалоговое окно?
Сделал диалоговое окно в designer from PyQt5 import QtCore, QtGui, QtWidgets class Ui_Form(object): def setupUi(self,...

Как показать свое окно ошибки, а не системное?
как показать свое окно ошибки а не системное. Когда стоит Doctor Watson то он показывает ошибки. У меня ваше стоит Delphi и она показывает...

Как создать свое окно для браузера
Добрый день! Подскажите как создать свое окно для браузера в java какую библиотеку использовать и что почитать. Нужно свое окно для...

Вывод чужой программы в свое окно. Как?
Есть программа , запускаю Process p = new Process(); ProcessStartInfo psi = new ProcessStartInfo(); psi.FileName = @"c:Program...

Начертить в Mathcad графики точно так же как на рисунке.
Помогите прошу вас! Я долго мучился с этими графиками, но ничего толком не вышло. Прошу можете помочь начертить в Mathcad эти графики точно...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru