Текущий архив: 2003.07.17;
Скачать: CL | DM;
ВнизПроблема с перерисовкой окна в WinXP Найти похожие ветки
← →
Executor (2003-05-12 14:14) [0]Не перерисовывает почемуто окно в ХП, в других Виндах всё ОК... В чём проблема? Может я гдето не так написал? Или для ХП гдето надо ещё чтото добавлять?
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.
← →
VMcL (2003-05-12 14:26) [1]Если мне не изменяет склероз, не мешало бы обрабатывать сообщения
WM_ERASEBACKGROUND и WM_PAINT. Может XP в DefWindowProc сама их не обрабатывает?
← →
Вася Пупкин (2003-05-12 14:37) [2]WParam: Word; => WParam:LongInt;
← →
Nick Denry (2003-05-13 12:51) [3]или хотя бы wm_paint:
beginpaint(........);
............
endpaint(..........);
← →
Executor (2003-05-14 11:04) [4]Вася Пупкин, спасибо... Просто сей текст из книжки одной, вот я вроде посмотрел всё нормально написано, а вот это не заметил... Всё теперь работает... Большое спасибо!
Страницы: 1 вся ветка
Текущий архив: 2003.07.17;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.007 c