Форум: "WinAPI";
Текущий архив: 2006.08.20;
Скачать: [xml.tar.bz2];
Внизперерисовка окна Найти похожие ветки
← →
Creative (2006-04-25 14:32) [0]есть код
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. Как следствие никакой перерисовки не происходит.
Укажите пожалуйста, что неправильно?
← →
Eraser © (2006-04-25 14:42) [1]
> Creative (25.04.06 14:32)
А объявить Up как глобальную переменную не пробовал? :-)
← →
MBo © (2006-04-25 14:42) [2]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;
← →
MBo © (2006-04-25 14:47) [3]>Eraser © (25.04.06 14:42) [1]
А я слона и не приметил за кучей ненужного :-)
← →
Creative (2006-04-25 14:51) [4]> Eraser © (25.04.06 14:42) [1]
> А объявить Up как глобальную переменную не пробовал? :-)
Попробовала :-)
To Eraser, MBo
Спасиобо огромное, все получилось.
Красота в простоте :-)
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2006.08.20;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.049 c