Вниз
Скачать: CL | DM;

перерисовка окна   Найти похожие ветки 

 
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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.026 c
2-1154158166
Батя
2006-07-29 11:29
2006.08.20
Реестр


4-1146059361
sally
2006-04-26 17:49
2006.08.20
Как остановить выполнение потока


15-1153508462
Furyz-dimodim
2006-07-21 23:01
2006.08.20
Домашний сервер


15-1153584712
WC2
2006-07-22 20:11
2006.08.20
Как вы представляете дни недели?


4-1146047721
Still Swamp
2006-04-26 14:35
2006.08.20
Лог Windows




   Наверх