Windows Aero'yu ana formda destekleyen bir C# uygulaması geliştiriyorum. Görsel Stilleri desteklemeyen bazı uygulamalar, örneğin, GoToMeeting, görsel stilleri devre dışı bırakın ve GoToMeeting çalışırken Formum yanlış çizilir (Aero istemci alanı siyah çizilir).DWM kompozisyonu/Aero Glass devre dışı bırakıldığında yükseltilen bir OS seviyesinde etkinliğe nasıl abone olurum?
Görsel stiller devre dışı bırakıldığında işlenen bir OS olayına nasıl abone olabilirim? Ardından, istemci alanını doğru şekilde çizilmek için penceremde ayarlayabilirim.
Yönetilen ve yönetilmeyen çözümler benim için geçerlidir.
Şimdiden teşekkürler.
DÜZENLEME:
private const int WM_DWMCOMPOSITIONCHANGED = 0x31e;
[DllImport("dwmapi.dll")]
private static extern void DwmIsCompositionEnabled(ref bool pfEnabled);
protected override void WndProc(ref Message m)
{
if (m.Msg == WM_DWMCOMPOSITIONCHANGED)
{
bool compositionEnabled = false;
DwmIsCompositionEnabled(ref compositionEnabled);
if (compositionEnabled)
{
// composition has been enabled
}
else
{
// composition has been disabled
}
}
base.WndProc (ref m);
}
Aero'nun ne yaptığını etkinleştirip etkinleştirmediğini tespit eder miydi? Eğer öyleyse, bu yardımcı olabilir: http://stackoverflow.com/questions/5114389/how-make-sure-areo-effect-is-enabled – joshhendo