Re[2]: Плавное появление окна с помощью AnimateWindow
От: programme-soul  
Дата: 28.04.10 08:52
Оценка:
Здравствуйте, kvasya, Вы писали:

K>По вопросу, форсируйте прорисовку просто WM_PAINT, например, RedrawWindow.


Спасибо за совет!
Я пробовала RedrawWindow, но видимо, не в такой комбинации. Сейчас все работает. Обработку WM_PRINTCLIENT убрала, т.к. действительно, вроде пока не нужно.

По идее UpdateWindow должна была посылать WM_PAINT... Видимо не посылала почему-то (неужели считала, что область для обновления была пустой?). А RedrawWindow сработала, т.к. это принудительное обновление и область для обновления была задана как клиентская область целиком.

bool 
CImageViewer::CreateMainWindow()
{
    m_hWnd = CreateWindowEx(WS_EX_CLIENTEDGE, (const char*)"Image Viewer main window class", 
                            (const char*)"Image Viewer v.1.0.0", WS_OVERLAPPEDWINDOW, 
                            0, 0, 
                            1024, 768,
                            NULL, NULL, 
                            m_hInstance, this);

    if (m_hWnd == NULL)
    {
        MessageBox(NULL, "Window creation failed!", "Error", MB_ICONEXCLAMATION|MB_OK);
        return false;
    }

    if (!AnimateWindow(m_hWnd, 500, AW_BLEND))
        return false;

    if (!RedrawWindow(m_hWnd, NULL, NULL, RDW_INVALIDATE))
        return false;

    return true;
}
Just programming soul
...who wants to know more
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.