Я рисую прямо на экране, используя BitBlt
и GetDC(IntPtr.Zero)
. Можно ли как-нибудь вызвать «Обновить» или «Неправильно» на всем экране, когда я закончу, чтобы я не оставлял большие куски краски везде (в цифровом виде)?
Обновление: когда вы рисуете прямо на экран, как я делаю, все, что вы рисуете, остается там до тех пор, пока окно под ним не перерисовывается (и при этом перерисовывает ту часть экрана, которую оно покрывает ).
Проблема в том, что некоторые части рабочего стола Windows не перекрашиваются в течение длительного времени. Например, если я рисую поверх панели задач, реальные задачи перекрашиваются довольно быстро (вместе с кнопкой «Пуск» и т. Д.), Но сама панель задач сохраняет то, что я нарисовал, в течение пары минут.
Если бы у моего приложения было окно, которое покрывало весь экран, я бы просто назвал Invalidate()
в этой форме, что заставило бы его перерисовать себя и, таким образом, весь экран. Мне нужен какой-то способ вызова Invalidate
или Refresh
на весь экран.