Я разрабатываю приложение на C #, которое поддерживает Windows Aero в основной форме.
Некоторые приложения, которые не поддерживают визуальные стили, например GoToMeeting , отключают визуальные стили и мою формуотображается неправильно во время работы GoToMeeting (область клиента Aero отображается черным цветом).
Как подписаться на событие ОС, которое запускается, когда визуальные стили отключены?Тогда я мог бы настроить область клиента в моем окне, чтобы она была правильно нарисована.
Управляемые и неуправляемые решения действительны для меня.
Заранее спасибо.
РЕДАКТИРОВАТЬ : Согласно ответу Ганса, вот код для управления этим событием:
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);
}