Здраствуйте. Есть код, который не компилируется. Ошибка гдето в WindowProc. Вроде бы все нормально, но даже окно не появляется. Вот код:
| Код | program WindowsApp; {$MODE DELPHI} uses Windows;
const AppName = 'WindowsApp';
var hWindow: hwnd; hins : hwnd; hwndEdit : hwnd;
function WindowProc(Window: HWnd; AMessage, WParam, LParam: Longint): Longint; stdcall; export; begin if Amessage = WM_DESTROY then ExitProcess(0) else if amessage = WM_CREATE then begin hwndEdit := CreateWindowEx(WS_EX_CLIENTEDGE, 'edit', nil, WS_CHILD or WS_VISIBLE or WS_BORDER or ES_LEFT or ES_AUTOHSCROLL, 50, 35, 200, 25, Window, 1, hins, nil); {SetFocus(hwndedit); } end; WindowProc := DefWindowProc(Window, amessage, wparam, lparam); end;
procedure WinMain (hinst, hprevinst, cmdline, cmdshow : Longint); stdcall; export; var lhwnd : longint; lmsg : msg; WindowClass : WNDCLASSEX; begin WindowClass.Style := cs_hRedraw or cs_vRedraw; WindowClass.lpfnWndProc := @WindowProc; WindowClass.cbClsExtra := 0; WindowClass.cbWndExtra := 0; WindowClass.hInstance := system.MainInstance; WindowClass.hIcon := LoadIcon(0, idi_Application); WindowClass.hCursor := LoadCursor(0, idc_Arrow); WindowClass.hbrBackground := GetStockObject(WHITE_BRUSH); WindowClass.lpszMenuName := nil; WindowClass.lpszClassName := AppName;
RegisterClassEx(WindowClass); lhwnd := CreateWindowEx(0, AppName, 'my fakin cool window', WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, cw_UseDefault, cw_UseDefault, 0, 0, system.MainInstance, nil);
ShowWindow(lhwnd, SW_NORMAL); UpdateWindow(lhwnd);
while GetMessage(@lmsg, 0, 0, 0) do begin TranslateMessage(lmsg); {check here @msg} DispatchMessage(lmsg); end;
end;
begin hins := GetModuleHandle(0); WinMain(hins, 0, 0, SW_SHOWNORMAL); end.
|
Спасибо за помощ. |