Dove sono memorizzate le informazioni sulla posizione di una finestra?


9

Dove sono memorizzate le informazioni sulla posizione di una finestra?

Un esempio: inizio notepad.exe, e non inizia né minimizzato né ingrandito, ma solo una finestra di medie dimensioni al centro dello schermo. Se lo chiudo e lo riavvio, è alle stesse coordinate XY. Ma poi se lo chiudo mentre è nella parte inferiore dello schermo, si riavvierà nella parte inferiore (a differenza del centro) dello schermo.

Se volessi modificare manualmente le posizioni XY di una finestra in modo che si aprisse in una posizione non standard, cosa avrei bisogno di modificare?

Probabilmente il registro, ma dove?

Risposte:


8

Ogni programma memorizza le informazioni sulle sue finestre a modo suo. Per Blocco note, ho trovato quanto segue nel mio registro di Windows XP.

Nel registro, vai alla seguente cartella

HKEY_CURRENT_USER\Software\Microsoft\Notepad

quindi modificare i seguenti valori

iWindowPosX
iWindowPosY
iWindowPosDX
iWindowPosDY

X e Y sono le coordinate dell'angolo in alto a sinistra della finestra. DX e DY sono la larghezza e l'altezza della finestra.

Altri programmi potrebbero salvare le informazioni sulla posizione della finestra nel registro o in altri file delle impostazioni.


Quindi ogni programma deve gestire i propri dati di posizionamento ??
BenjiWiebe,

Speravo che Windows lo gestisse. Ma ho avuto un'onda cerebrale. Ho compilato un programma GUI Win32 di base e ho cercato il codice per individuare il codice di impostazione della posizione. Tutto quello che ho trovato era una linea che diceva a Windows di posizionare il programma. Windows quindi posizionava il programma come qualsiasi altro programma per console: nell'angolo in alto a sinistra, quindi un po 'più in basso e a destra, e poi di nuovo in basso, fino a quando non viene ripristinato nell'angolo in alto a sinistra. Demo: digita start10 volte test.bated eseguilo.
BenjiWiebe,

Ho appena visto che iWindowPosX era impostato su fffffffd (4294967293) nel mio caso. Hai idea di come funzioni quel numero enorme?
Karan,

@BenjiWiebe Sono cose diverse: 1. Se un programma ricorda la posizione di una finestra in modo che possa essere collocata nella stessa posizione la volta successiva, il programma può scegliere come e dove salvare le coordinate e le dimensioni della finestra. Potrebbe salvare i valori nel registro, in un file di testo o in altro modo. 2. Se stai scrivendo un programma che crea una finestra, dovresti essere in grado di specificare la posizione e le dimensioni della finestra quando crei la finestra. Immagino che se non li specifichi, Windows sceglierà un posizionamento predefinito come da te descritto. Forse puoi ottenere indicazioni più specifiche su un forum di programmazione.
Bavi_H,

1
@Karan Quel numero è -3 quando i bit sono trattati come un valore con segno. In breve: immagina un contachilometri con otto rulli e ogni rullo ha le cifre da 0 a 9 e poi da A a F. Se inizi a 00000000, fai clic tre volte sul contachilometri all'indietro, finisci in FFFFFFFD. Per maggiori dettagli: scopri binario, esadecimale e complemento a due.
Bavi_H,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.