Professional UI Solutions
Site Map   /  Register
 
 

Forum

Please Log In to post a new message or reply to an existing one. If you are not registered, please register.

NOTE: Some forums may be read-only if you are not currently subscribed to our technical support services.

Forums » Prof-UIS Tech Support » use AnimateWindow when skin applied Collapse All
Subject Author Date
delu qiu Oct 11, 2006 - 11:51 AM

Hi,

I want to use AnimateWindow to slide animation a dialog window, the problem is all controls display skin well except the dialog. the dialog background display the window system default color instead of the skin.


BOOL CSPSSelection::OnInitDialog()
{
    CDialog::OnInitDialog();
    SetIcon(m_hIcon, TRUE);            // Set big icon
    SetIcon(m_hIcon, FALSE);        // Set small icon

    windll = LoadLibrary("C:\\WINDOWS\\system32\\user32.dll");
    if ((AnimateWindow = (ANIMATEWINDOW)GetProcAddress(windll, "AnimateWindow")) == NULL)
    {
        FreeLibrary(windll);
    }
    BOOL bReturn;
    bReturn=AnimateWindow(this->m_hWnd,500,0x00040000|0x00000001);
    if (!bReturn)
    {
        CString str;
        DWORD err=GetLastError();
        str.Format("%d",err);
        AfxMessageBox(str);
    }
    FreeLibrary(windll);
    
    return TRUE; // return TRUE unless you set the focus to a control
     // EXCEPTION: OCX Property Pages should return FALSE
}

Technical Support Oct 13, 2006 - 11:55 AM

Thank you for reporting the bug. We found out that many of our controls do not support the WM_PRINT and WM_PRINTCLIENT messages, which should be implemented so that the AnimateWindow() function can work correctly. Now we are working on this issue and next week we will release a new Prof-UIS version that includes this fix.

Please note that Prof-UIS already has the g_PaintManager.m_pfnAnimateWindow function pointer that can be used in your application:

g_PaintManager.m_pfnAnimateWindow(
 this->m_hWnd,
 500,
 __EXT_AW_SLIDE|__EXT_AW_HOR_POSITIVE
 );