![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Рисование на DC [D6, Win95/98, WinXP]
ATLANTIDO © (2002-03-22 21:28:00)Рисую на DC. Вопрос в том, как
после своих манипуляций посылать пострадавшим (или всем) окнам сообщение о необходимости перерисовки, для восстановления их первоначального вида ?
ATLANTIDO (2002-03-26 13:44:00) [1]Help me ! Срочно надо !
ATLANTIDO (2002-03-25 19:11:00) [2]Так существует работающий метод ?
ATLANTIDO (2002-03-25 17:41:00) [3]
> 2 ATLANTIDO
> а в чем вопрос по закидыванию своего окна наверх?
Смотри в этой конфе "Попустить окно"
Nikolay (2002-03-25 17:12:00) [4]2 ATLANTIDO
а в чем вопрос по закидыванию своего окна наверх?
ATLANTIDO (2002-03-25 17:02:00) [5]
> А если сделать своё окно нужных размеров и рисовать на нём,
> вместо того, чтобы делать это на чужих?
Тоже идея . Только окно свое придется закидывать поверх
других - а это уже другой вопрос, на который я тоже
пока не получил ответа.
Код :
procedure TForm1.TimeMes(s:string);
var
DC: HDC;
Canva: TCanvas;
B: TBitmap;
W, H, i : integer;
Wnd : THandle;
begin
for i:=1 to 30 do
begin
Canva := TCanvas.Create;
DC := GetDC(0);
try
Canva.Handle := DC;
Canva.Font.Handle := CreateFont(50, 0, 0, 0, 700, 0, 0, 0, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS,
CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY, DEFAULT_PITCH, nil);
Canva.TextOut(0,0,s);
finally
ReleaseDC(0, DC);
sleep(100);
Canva.Free;
end
end;
PostMessage(HWND_BROADCAST, WM_PAINT, 1, 1);
end;
SPeller (2002-03-25 07:29:00) [6]А если сделать своё окно нужных размеров и рисовать на нём, вместо того, чтобы делать это на чужих?
SPeller (2002-03-25 07:26:00) [7]Должно работать. Ты б показал как ты это делаешь.
ATLANTIDO (2002-03-24 23:04:00) [8]Пробовал на окнах рисовать - потом WP_Paint посылаю
и не работает
Raptor (2002-03-24 00:13:00) [9]Каждое окно имеет свой DC и сообщение WM_PAINT надо посылать тому окну, на чьем DC ты рисуешь. Очевидно ты рисуешь прямо на рабочем столе, тогда нодо посылать сообщение всем окнам. Например так:
SendMessage(HWND_BROADCAST,WM_PAINT,0,0)
ATLANTIDO (2002-03-23 14:08:00) [10]Посылаю DC - ноль эмоций
ATLANTIDO (2002-03-23 11:31:00) [11]Рисовал в контексте DC.
SPeller (2002-03-23 08:54:00) [12]Тому, в чьём контексте рисовал
ATLANTIDO (2002-03-23 00:46:00) [13]Кому этот месдж посылать ?
Song (2002-03-22 22:35:00) [14]WM_PAINT
ATLANTIDO (2002-03-22 22:08:00) [15]Это сообщение ForeGround-окну посылать ?
Amit (2002-03-22 21:45:00) [16]Посылаеш сообшение WM_SETREDRAW. программа получает сообшение о перерисовке и после этого перерисовывается.