Сейчас на форуме: (+2 невидимых)

 eXeL@B —› Оффтоп —› Рисуем на десктопе, а как потом очистить?
Посл.ответ Сообщение


Ранг: 450.3 (мудрец), 13thx
Активность: 0.20
Статус: Участник

Создано: 10 декабря 2009 14:23
· Личное сообщение · #1

Нашёл такой код:

Code:
  1. procedure TForm1.Button1Click(Sender: TObject);
  2. var
  3.  ScreenDC:HDC;
  4. begin
  5.  ScreenDC := GetDC(0);
  6.  Rectangle(ScreenDC, 10, 10, 200, 200);
  7.  ReleaseDC(0,ScreenDC);
  8. end;


Возник вопрос, так как прямоугольник выводится поверх всего остального, что бы потом отчистить, что нужно сделать? Первое, что приходит в голову сохранять область в которую будем гадить, а затем восстанавливать. Может есть простые методы?



Ранг: 441.3 (мудрец), 297thx
Активность: 0.410.04
Статус: Участник

Создано: 10 декабря 2009 14:47
· Личное сообщение · #2

ToBad
попробуйте так

Code:
  1. var
  2.   R: PRect;
  3. begin
  4.   New(R);
  5.   R^ := Rect(0, 0, GetSystemMetrics(SM_CXSCREEN), GetSystemMetrics(SM_CYSCREEN));
  6.   RedrawWindow(0, R, 0, RDW_FRAME + RDW_INVALIDATE + RDW_ALLCHILDREN + RDW_NOINTERNALPAINT);
  7.   Dispose(R);
  8. end;





Ранг: 450.3 (мудрец), 13thx
Активность: 0.20
Статус: Участник

Создано: 10 декабря 2009 15:01
· Личное сообщение · #3

tihiy_grom - Работает отлично! Огромное спасибо!




Ранг: 1131.7 (!!!!), 447thx
Активность: 0.670.2
Статус: Участник

Создано: 12 декабря 2009 05:34
· Личное сообщение · #4

Первая мысль по прочтению темы: ToBad сработал графити из баллончика по монитору




Ранг: 450.3 (мудрец), 13thx
Активность: 0.20
Статус: Участник

Создано: 12 декабря 2009 14:46
· Личное сообщение · #5

Gideon Vi пишет:
Первая мысль по прочтению темы: ToBad сработал графити из баллончика по монитору


Ага, так примерно и выходит... Жуткий метод, главное ничего не двигать по экрану... ))))


 eXeL@B —› Оффтоп —› Рисуем на десктопе, а как потом очистить?

У вас должно быть 20 пунктов ранга, чтобы оставлять сообщения в этом подфоруме, но у вас только 0

   Для печати Для печати