BeginPaint - заполняет структуру PAINTSTRUCT только из WM_PAINT

Подскажите пожалуйста, что не так ?

Я создаю отдельный поток и создаю обычное WinApi-шное окно. И делая HWND окна глобальным.

В процедуре окна, когда оно вызывается с WM_PAINT, то после выполнения функции BeginPaint в структуре ps - заполнены размеры созданного окна:

HWND my_global_HWND;

static LRESULT CALLBACK WndProc(HWND   hWnd, UINT   message, WPARAM wParam, LPARAM lParam)
{
    PAINTSTRUCT ps;

    if (message == WM_PAINT)
    {
        HDC my_hdc = BeginPaint(my_global_HWND, &ps);  
        EndPaint(hWnd, &ps);
    }
}

Но, когда я вызываю этот же BeginPaint из стороннего потока и не из процедуры окна, то BeginPaint так же выполняется, в my_hdc - заполнен значением, а не нулем. Но структура ps - заполнена нулевыми размерами окна.

Не пойму почему так происходит.


Ответы (0 шт):