我OnInitDialog中调用SetLayeredWindowAttributes()实现了不规则窗口,然后想调用 AnimateWindow实现淡入淡出的效果,但是总是不成功,不知道为什么。单独使用时,都是可以成功的。环境:WinXP sp1, vc6, 最新的Sdk//相关的代码HWND     wnd = GetSafeHwnd();
LONG nStyle = GetWindowLong(wnd, GWL_EXSTYLE);
SetWindowLong(wnd, GWL_EXSTYLE, nStyle | WS_EX_LAYERED);  
SetLayeredWindowAttributes(wnd, RGB(255,0,255), 255, LWA_COLORKEY);//以上代码可以实现不规则窗口
//加入下面的代码后,不仅没有淡入淡出,连不规则窗口的效果都没了。AnimateWindow(wnd, 1000, AW_BLEND);  //返回1,说明函数执行成功了

解决方案 »

  1.   

    这样子使用呢?我测试的可以,只是效果...,先AnimateWindow然后再设置
    HWND     wnd = GetSafeHwnd();
    AnimateWindow(wnd, 1000, AW_BLEND);  //返回1,说明函数执行成功了LONG nStyle = GetWindowLong(wnd, GWL_EXSTYLE);
    SetWindowLong(wnd, GWL_EXSTYLE, nStyle | WS_EX_LAYERED);  
    SetLayeredWindowAttributes(wnd, RGB(255,0,255), 255, LWA_COLORKEY);