Sto provando a posizionare il mio modulo esattamente sopra la barra delle applicazioni. Sfortunatamente i miei sforzi sono ostacolati dal fatto che lo this.Height
sul mio modulo restituisce un valore che è 10 pixel più piccolo della forma attuale (con tutti i bordi, la barra del titolo, ecc.). Sto usando Windows 7 con Aero. Quando Aero è disattivato (e i bordi sono più sottili), tutto funziona come previsto. Lo stile del bordo del modulo è FixedSingle
. Non voglio implementare hack specifici per Aero. Cosa posso fare per ottenere l'altezza corretta?Come determinare la dimensione del modulo di Windows EFFETTIVO (con tutti gli elementi non secondari) durante l'esecuzione di Aero?
6
A
risposta
8
Sì, Aero si basa sulla dimensione della finestra restituita da GetWindowRect(). È un hack appcompat piuttosto importante, senza che troppi programmi abbiano un'area client troppo piccola. Sfortunatamente non esiste né una chiamata API né una voce manifest che possa essere utilizzata per disattivare la bugia. L'unico modo è impostare la versione di Windows nell'intestazione EXE e contrassegnarla compatibile con Vista.
È possibile farlo con Editbin.exe in un evento postbuild:
set pathsave=%path%
set path=$(devenvdir);$(devenvdir)..\..\vc\bin
editbin.exe /subsystem:windows,6.0 "$(targetfilename)"
set path=%pathsave%
Attenzione che il programma non funzionerà in XP più dopo questo.
UPDATE: questo ora è fatto per impostazione predefinita in VS2012 e quando si target .NET 4.5
Problemi correlati
- 1. Errore di rendering Aero di Windows
- 2. Confronta gli elementi HTML con lo z-index effettivo
- 3. Aggiunta attributo readonly a tutti gli elementi del modulo
- 4. Iterating sopra gli elementi del menu principale (compresi gli elementi secondari)
- 5. Delphi - Risorse di Windows Aero
- 6. aggiunta di elementi secondari XML
- 7. Recupero di tutti gli elementi con DynamoDBMapper
- 8. serie di elementi avvolgere tutti gli elementi
- 9. Ottieni gli elementi del modulo per nome?
- 10. Determina la larghezza di tutti gli elementi figlio
- 11. DrawToBitmap non prendere le immagini di tutti gli elementi
- 12. Automazione dell'interfaccia utente di Windows che non mostra tutti gli elementi figlio?
- 13. Come posso determinare la dimensione di un tipo in Haskell?
- 14. Allinea gli elementi del modulo in css
- 15. Come posso cambiare la dimensione del carattere in Eclipse per TUTTI gli editor di testo?
- 16. Determinare la dimensione dell'array nell'inizializzatore del costruttore
- 17. Impossibile determinare la dimensione del terminale con ncurses
- 18. jquery per disabilitare gli elementi del modulo
- 19. È necessario tagliare tutti gli elementi nel modulo utilizzando javascript
- 20. Modifica del colore di sfondo di tutti gli elementi con la stessa classe
- 21. Seleziona tutti gli elementi all'interno di ListView
- 22. ZF2: come impostare gli elementi del modulo da ignorare?
- 23. Come ottenere gli ID di tutti gli input all'interno del modulo?
- 24. jQuery.ajax - invia tutti gli elementi nel modulo senza inserirli manualmente
- 25. Come determinare la dimensione di una stringa dato un font
- 26. Il selenio ottiene tutti gli elementi in un modulo
- 27. ottenere tutti gli elementi di categoria e del suo bambino
- 28. Creazione di elementi secondari in solution explorer
- 29. come determinare la dimensione del tablespace oracolo 11g
- 30. Tutti gli elementi di archiviazione locali
Ouch! Bene, dal momento che questa è una piccola utilità per il mio uso, suppongo che allora la ignorerò. Qualsiasi altro modo sembra troppo complicato per una così piccola imprecisione (a parte semplicemente hackerare un +10 ai miei calcoli). –