Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Проблема с перерисовкой окна в WinXP [D7, WinXP]


Executor ©   (2003-05-12 14:14:00) 

Не перерисовывает почемуто окно в ХП, в других Виндах всё ОК... В чём проблема? Может я гдето не так написал? Или для ХП гдето надо ещё чтото добавлять?

rproblem.dpr

program RProblem;

uses
Windows, Messages;

const
AName = "RProblem";

var
Window: HWND;
Message: TMsg;
WindowClass: TWndClass;

function WindowProc(Window: HWND; Message, WParam: Word; LParam: LongInt): LongInt; stdcall;
begin
Result:=0;
case Message of
wm_Destroy:
begin
PostQuitMessage (0);
Exit;
end;
end;
Result:=DefWindowProc(Window, Message, WParam, LParam);
end;

begin
with WindowClass do
begin
Style:=cs_HRedraw or cs_VRedraw;
lpfnWndProc:=@WindowProc;
cbClsExtra:=0;
cbWndExtra:=0;
hInstance:=0;
hIcon:=LoadIcon(0, idi_Application);
hCursor:=LoadCursor(0, idc_Arrow);
hbrBackground:=GetStockObject(White_Brush);
lpszMenuName:="";
lpszClassName:=AName;
end;
If RegisterClass(WindowClass)=0 then Halt(255);
Window:=CreateWindow(AName, "Repaint Problem", ws_OverlappedWindow, cw_UseDefault, cw_UseDefault, cw_UseDefault, cw_UseDefault, 0, 0, hInstance, nil);
ShowWindow(Window, CmdShow);
UpdateWindow(Window);
while GetMessage(Message, 0, 0, 0) do
begin
TranslateMessage(Message);
DispatchMessage(Message);
end;
Halt(Message.wParam);
end.


Executor   (2003-05-14 11:04:00) [1]

Вася Пупкин, спасибо... Просто сей текст из книжки одной, вот я вроде посмотрел всё нормально написано, а вот это не заметил... Всё теперь работает... Большое спасибо!


Nick Denry   (2003-05-13 12:51:00) [2]

или хотя бы wm_paint:
beginpaint(........);
............
endpaint(..........);


Вася Пупкин   (2003-05-12 14:37:00) [3]

WParam: Word; => WParam:LongInt;


VMcL   (2003-05-12 14:26:00) [4]

Если мне не изменяет склероз, не мешало бы обрабатывать сообщения
WM_ERASEBACKGROUND и WM_PAINT. Может XP в DefWindowProc сама их не обрабатывает?


Наверх

Титульная страница Поиск, карта сайта Написать письмо