기본 폼에서 Windows Aero를 지원하는 C# 응용 프로그램을 개발 중입니다.DWM composition/Aero Glass가 비활성화 된 경우 발생하는 OS 수준 이벤트를 구독하려면 어떻게합니까?
비주얼 스타일을 지원하지 않는 일부 응용 프로그램 (예 : GoToMeeting)은 시각적 스타일을 비활성화하고 GoToMeeting이 실행되는 동안 양식이 잘못 그려집니다 (Aero 클라이언트 영역은 검은 색으로 그려집니다).
비주얼 스타일이 사용 중지 된 경우 어떻게 해고당하는 OS 이벤트에 가입 할 수 있습니까? 그런 다음 창에서 클라이언트 영역을 올바르게 그려야합니다.
관리 솔루션과 관리되지 않는 솔루션이 적합합니다.
미리 감사드립니다.
편집는 :
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);
}
에어로가 활성화되어 있는지 감지하고 있습니까? 그렇다면 도움이 될 수 있습니다. http://stackoverflow.com/questions/5114389/how-make-sure-areo-effect-is-enabled – joshhendo