Де зберігається інформація про положення вікна?


9

Де зберігається інформація про положення вікна?

Приклад: я запускаю notepad.exe, і він починається ні мінімізованим, ні максимальним, а лише вікном середнього розміру в центрі екрана. Якщо я закрию його і запускаю заново, він знаходиться в тих же координатах XY. Але тоді, якщо я закрию його, поки він знаходиться внизу екрана, він знову запуститься внизу (на відміну від середини) екрана.

Якщо я хотів би вручну змінити положення XY вікна, щоб воно відкрилося в нестандартному місці, що мені потрібно змінити?

Можливо, реєстр, але де?

Відповіді:


8

Кожна програма по-своєму зберігає інформацію про свої вікна. Для Notepad я знайшов у своєму реєстрі Windows XP наступне.

У реєстрі перейдіть до наступної папки

HKEY_CURRENT_USER\Software\Microsoft\Notepad

потім змініть наступні значення

iWindowPosX
iWindowPosY
iWindowPosDX
iWindowPosDY

X і Y - координати верхнього лівого кута вікна. DX і DY - ширина і висота вікна.

Інші програми можуть зберігати інформацію про положення вікна в реєстрі чи інших файлах налаштувань.


Отже, кожна програма повинна обробляти свої власні дані про позиціонування ??
BenjiWiebe

Я сподівався, що Windows впорається з цим. Але у мене виник мозку. Я склав дуже основну програму Win32 GUI і переглянув код, щоб знайти код налаштування позиції. Все, що я знайшов, - це рядок, який сказав Windows позиціонувати програму. Потім Windows розміщує програму, як і будь-яка програма консолі - верхній лівий кут, потім трохи нижче та праворуч, а потім знову нижній, до остаточного скидання її у лівий верхній кут. Демо: введіть start10 разів test.batі запустіть його.
BenjiWiebe

Щойно я побачив, що в моєму випадку iWindowPosX встановлено значення fffffffd (4294967293). Будь-яка ідея, як працює ця велика кількість?
Каран

@BenjiWiebe Це різні речі: 1. Якщо програма запам'ятовує позицію вікна, щоб вона могла поставити його в тому ж місці наступного разу, тоді програма повинна вибрати, як і де зберігати координати вікна та розмір. Це може зберегти значення в реєстрі, текстовому файлі чи іншим способом. 2. Якщо ви пишете програму, яка створює вікно, під час створення вікна ви повинні мати змогу вказати його положення та розмір. Я думаю, якщо ви не вкажете їх, Windows вибере розташування за замовчуванням, як ви описуєте. Можливо, ви можете отримати більш конкретні вказівки на форумі програмування.
Bavi_H

@Karan Це число становить -3, коли біти трактуються як підписане значення. Коротко: уявіть одометр з вісьмома барабанами, і на кожному барабані цифри від 0 до 9, а на ньому - від A до F. Якщо ви починаєте з 00000000, то тричі клацніть одометр назад, ви опинитесь на FFFFFFFD. Для більш детальної інформації: дізнайтеся про двійкові, шістнадцяткові та доповнення двох.
Bavi_H
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.