Hace tiempo que no publico código en C/C++ dentro de este foro, aunque si lo hago acompañando código delphi, así que voy a repetir el código que expuse aquí. Se trata de conseguir que un proceso del que conocemos sólo su Pid, se repinte:
cpp
void ReDrawWindows(DWORD PID) { struct TWinParam{ static BOOL CALLBACK EnumWindowsProc(HWND hWnd, DWORD* Pid){ DWORD PId = 0; GetWindowThreadProcessId(hWnd, &PId); if(*Pid == PId){ TRect cr; ::GetClientRect(hWnd, &cr); InvalidateRect(hWnd, &cr, true); RedrawWindow(hWnd, &cr, 0, RDW_FRAME|RDW_ERASE|RDW_INVALIDATE|RDW_UPDATENOW|RDW_ALLCHILDREN); } return true; } } WinParam; EnumWindows((PROC)TWinParam::EnumWindowsProc, LPARAM(&PID)); }
Saludos.