Я разрабатываю приложение 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);
}