![]() |
Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.
![]() |
Dark |
![]()
Сообщение
#1
|
![]() Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 408 Пол: Мужской Репутация: ![]() ![]() ![]() |
Вот, попробовал по drkb32 написать прогу так как описано в drkb
program Project1;
uses Windows, Messages;
const AppName = 'WinMin';
Var
Window : HWnd;
Message : TMsg;
WindowClass : TWndClass;
function WindowProc (Window : HWnd; Message, WParam : Word; LParam : LongInt) : LongInt; stdcall;
begin
WindowProc := 0;
case Message of
wm_Destroy :begin
PostQuitMessage (0);
Exit;
end;
end; // case
WindowProc := 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 := AppName;
end;
If RegisterClass (WindowClass) = 0 then Halt (255);
Window := CreateWindow(AppName,
'Win_Min',
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
end.
он мне ругается что параметр cw_UseDefault выходит за рамки диапазона (но проект компилит) - почему? -------------------- - Где я?
- Во тьме. - В какой тьме? - Во тьме твоего мозга. |
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Dark, вот так в Дельфи определено значение CW_USEDEFAULT:
CW_USEDEFAULT = DWORD($80000000);
А вот так - функция CreateWindow: function CreateWindow(lpClassName: PChar; lpWindowName: PChar;
dwStyle: DWORD; X, Y, nWidth, nHeight: Integer; hWndParent: HWND;
hMenu: HMENU; hInstance: HINST; lpParam: Pointer): HWND;
Так что произойдет, если ты вызовешь функцию так: Window := CreateWindow(AppName, 'Win_Min', ws_OverlappedWindow,
cw_UseDefault, cw_UseDefault, cw_UseDefault, cw_UseDefault,
0, 0, HInstance, nil);
?Выход за границы диапазона (диапазон DWord больше, чем Integer), что тебе и говорил компилятор ![]() Что делать чтобы убрать сообщение? Window := CreateWindow(AppName, 'Win_Min', ws_OverlappedWindow,
Integer(cw_UseDefault), Integer(cw_UseDefault),
Integer(cw_UseDefault), Integer(cw_UseDefault),
0, 0, HInstance, nil);
... ![]() |
![]() ![]() |
![]() |
Текстовая версия | 30.07.2025 23:08 |