2012-01-12 7 views
6

Formumun görev çubuğunun tam üstüne konumlandırılmaya çalışıyorum. Maalesef, formumdaki this.Height formunun, gerçek formdan (tüm kenarlıklar, başlık çubuğu, vb.) 10 piksel daha küçük bir değer döndürmesi nedeniyle çabalarım engelleniyor. Aero ile Windows 7 çalıştırıyorum. Aero kapatıldığında (ve sınırlar daha ince), tüm beklendiği gibi çalışır. Formun kenarlık stili FixedSingle. Aero'ya özgü saldırıları uygulamak istemiyorum. Doğru yüksekliği elde etmek için ne yapabilirim?Aero çalıştırırken ACTUAL pencerelerin form boyutu (tüm nonclient elemanlarla) nasıl belirlenir?

cevap

8

Evet, Aero GetWindowRect() tarafından döndürülen pencere boyutu hakkında yatar. Oldukça önemli bir uygulama paketi, çok fazla program olmadan çok küçük bir istemci alanına sahip olurdu. Ne yazık ki, ne bir API çağrısı ne de yalanları kapatmak için kullanılabilecek bir manifesto girişi yoktur. Tek yolu, Windows sürümünü EXE üstbilgisinde ayarlamak ve Vista uyumlu olarak işaretlemektir.

Bir postbuild olay Editbin.exe ile yapabilirsiniz:

set pathsave=%path% 
set path=$(devenvdir);$(devenvdir)..\..\vc\bin 
editbin.exe /subsystem:windows,6.0 "$(targetfilename)" 
set path=%pathsave% 

program bundan sonra artık XP'de aday olmayacağını sakının.


GÜNCELLEME: Bu şimdi VS2012 varsayılan olarak yapılır ve yukarı hedeflemek zaman .NET 4.5

+1

Ah! Eh, bu kendi kullanımım için küçük bir yardımcı program olduğundan, sanırım onu ​​görmezden geleceğim. Başka herhangi bir yol, bu kadar küçük bir uygunsuzluk için çok fazla güçlük çekiyor (hesaplamalarımda +10'luk bir hatayı kestirmeden). –

İlgili konular