Форум — Ответы     (  К темам )
 ?  SEH: как заставить десктоп перерисовать себя? (09-03-2003 03:21:49)
при помощи следующего кода вывожу на экран битмап :

ddc=GetDC(NULL);
BitBlt(ddc,0,0,32,32,bmp->Canvas->Handle,0,0,SRCCOPY);

пытаюсь вернуть экран в первозданное состояние так :

hwd=WindowFromDC(ddc);
UpdateWindow(hwd);
и так :
InvalidateRect(hwd,&rc,false/true);

не действует.
Как это сделать правильно ?
(Просто накрывать экран своим окошком на которое потом копировать битмап десктопа
и поверх свой битмап по некоторым причинам не подходит)
 Devnvd (09-03-2003 17:23:02)
Пример из SDK, перерисовка десктопа:
void RedrawDesktop()
{

#define SetWindowRedraw(hwnd, fRedraw) \
((void)SNDMSG(hwnd, WM_SETREDRAW, (WPARAM)(BOOL)(fRedraw),0L))
SetWindowRedraw(GetDesktopWindow(), TRUE);

RedrawWindow(GetDesktopWindow(), NULL, NULL,
RDW_INVALIDATE |RDW_UPDATENOW |RDW_ALLCHILDREN);

}
 SEH (12-03-2003 04:13:32)
to Devnvd
спасибо за помощ,только если не секрет,в каком разделе SDK такие интересные вещи — я искал в MSDN january 2002 — не нашел ?