Здравствуйте ol-lv, Вы писали:
[skip]
OL>..........................
OL>bool date=GetLocalTime()==date_sleep_my;
OL>HANDLE hThrd;
OL>DWORD thID;
OL>(date)?(SuspemdThread(hThrd),Sleep(TimeSleep),ResumeThread(hThrd)):(hThrd=CreateThread(0,NULL,(LPTHREAD_START_ROUTINE)Work,0,NULL,thID),MessageBox(0,"Ух","Я бодр",MB_OK));
:super:
[skip]
OL>Дык пробовал, с помощью BitBlt(....) сдвигать, а стандартный обр-ик ?... в общем возникали проблемки и упиралось в создание своего скроллинга.... !!!Я так подумал, может есть стандартные методы, которые говорят чилдренам о том, что мол парент скроллируется и чтоб они входили в общий dc парента и перерисовывались как положено!!!!!, если таких нет, дык придется либо по другому это все делать либо свой скроллинг создавать
OL> :( чего ой как не хочется
Да стандартный обработчик тоже самое бы и делал, если бы был ... по-моему тут никаких проблем не должно быть, всё просто до нельзя ...
берём твоё дочернее окно и говорим что сейчас будем двигать-> оно ся сохраняет и скрывает, затем меняем ему положение и говорим что двигать закончили -> оно в ответ себя показывает но не перерисовывает, а копирует сохранёное ранее. При картинках в половину экрана, этого не видно даже если очень захотеть на пне 300 ...
UpdateRect (InvalidateRect ?) здесь не выгоден, потому что проверяет нужно ли обновлять, а я так понял ты то уже знаешь, что не нужно, а нужно просто вернуть что было ...
ещё лучше решение, заставить твои дочерние окна рисовать, а потом это сразу копировать в память, тогда не понадобится сохранять каждый раз твой HDC, но придётся каждый раз при перерисовке сохранять (хотя лучше сразу рисовать в памяти, а на экран тока копировать) ...
// псевдокод для дочернего окна
OnPaint(CDC *pDC)
{
if(m_fнуноПерерисовать)
{
// рисуем чего-нить
// теперь сохраняем нарисованное в локальный контекст HDC (в память)
m_localDC=SaveDC(pDC);
}
else
{
// копируем из локального DC в памяти
BitBlt(/*из m_localDC в pDC*/);
// здесь ещё и флажок можно сбросить
}
}
// а теперь просто нужно создать пару сообщений типа ->
// WM_BEGINMOVING ("я тебя типа подвину"), WM_ENDMOVING ("я тебя подвинул")
// и соосно в них проставлять флажок насчёт нуноПерерисовать ну и скрывать где надо.
// если лень во всех "дочках", то создать один класс с такими сообщениями и наследовать от него.
C Уважением Andir!