I have a modal dialog I'm creating with MFC. When it appears, the Aero theme does it's fade-in transition for a new window appearing. In my particular case I'm switching immediately from one dialog to another and the fade effect is distracting. Is there a way it can be disabled so the window immediately appears, like it does when Aero is disabled, but without switching Aero off completely?
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
回答1:
The DwmSetWindowAttribute
function might be able to help you. It lets you modify a number of window attributes related to the DWM. In particular, the DWMWA_TRANSITIONS_FORCEDISABLED
attribute mentions "Enable or forcibly disable DWM transitions", which just might do the trick.
HRESULT hr = S_OK;
LPCVOID dwAttribute = (LPCVOID)TRUE;
hr = DwmSetWindowAttribute(hWnd, DWMWA_TRANSITIONS_FORCEDISABLED,
&dwAttribute, sizeof(dwAttribute));
if (SUCCEEDED(hr))
{
// The transitions should have been disabled
}