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 - заполнена нулевыми размерами окна.
Не пойму почему так происходит.