![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
перерисовка окна [D7, WinXP]
Creative © (2006-04-25 14:32:00)есть код
function WndProc(hwnd, message: DWORD; wParam, lParam: Integer): Integer; stdcall;
var
Up: boolean;
PS: TPaintstruct;
DC: HDC;
begin
dc := GetDC (hwnd);
case message of
WM_CREATE :
begin
Hwnd_main:= hwnd;
end;
WM_PAINT:
begin
if Up = true then
begin
DC:= BeginPaint(hwnd_main, ps);
{ Рисовать неважно что - 1 }
EndPaint(hwnd_main, ps);
end;
if Up = false then
begin
DC:= BeginPaint(hwnd_main, ps);
{ Рисовать неважно что - 2 }
EndPaint(hwnd_main, ps);
end;
WM_LBUTTONDOWN:
begin
If Up = true then
Up:= false;
invalidateRect(hwnd_main,nil, false);
If Up = false then
Up:= true;
invalidateRect(hwnd_main,nil, false);
end;
end;
Проблема:
1. Строки о присвоении нового значения Up программа игнорирует.
2. Как следствие никакой перерисовки не происходит.
Укажите пожалуйста, что неправильно?
Creative (2006-04-25 14:51:00) [1]> Eraser © (25.04.06 14:42) [1]
> А объявить Up как глобальную переменную не пробовал? :-)
Попробовала :-)
To Eraser, MBo
Спасиобо огромное, все получилось.
Красота в простоте :-)
MBo (2006-04-25 14:47:00) [2]>Eraser © (25.04.06 14:42) [1]
А я слона и не приметил за кучей ненужного :-)
Eraser (2006-04-25 14:42:00) [3]
> Creative (25.04.06 14:32)
А объявить Up как глобальную переменную не пробовал? :-)
MBo (2006-04-25 14:42:00) [4]dc := GetDC (hwnd); - Это - выкинуть
Hwnd_main:= hwnd; - это тоже
WM_PAINT:
begin
DC:= BeginPaint(hwnd, ps);
if Up then
{ Рисовать неважно что - 1 }
else
{ Рисовать неважно что - 2 }
EndPaint(hwnd, ps);
end;
WM_LBUTTONDOWN:
begin
Up := not Up;
invalidateRect(hwnd,nil, false);
end;
end;