Здесь представлена информация о API на основе примеров для начинающих.
За основу взят язык Object Pascal, компилятор входит в состав Дельфи и находится в каталоге BIN. Для запуска надо в командной строке набрать dcc32.exe [namefile], я для этих целей использую bat файлы.
Начнем с самого начала- создание окна. Программа созда╠т окно, и пока ничего не делает.
uses windows,messages;// Загрузка необходимых модулей. var am:TMsg; hw:hwnd;//Хендл окна a_name:lpctstr;//Имя класса // Процедура которая вызывается Виндами по какому нибудь событию // Пока пустая. function wsa (hww:hwnd;mes:word;wp:wparam;lp:lparam):dword;stdcall;export; begin // Процедура DefWindowProc - стандартна процедура для обработки событий case mes of WM_DESTROY:PostQuitMessage(0)//Посылает сообщение wm_quit на сообщение о уничтожении окна. else result:=defwindowproc(hww,mes,wp,lp);//стандартная процедура Windows'а end; end; //Функция регистрации класса function winreg:boolean; var wc:TWndClass;// Это экзэмпляр класса begin wc.style:=cs_hredraw or cs_vredraw; //Стиль отображения wc.lpfnwndproc:=@wsa; //Адресс процедуры обработки событий wc.cbclsextra:=0;// wc.cbwndextra:=sizeof(wc);// wc.hinstance:=HInstance;// wc.hicon:=loadicon(Thandle(nil),0); //Иконка wc.hcursor:=loadcursor(Thandle(nil),IDC_NO); //Курсор wc.hbrbackground:=color_window;//Цвет окна интересный эффект если равно hbrush(nil); wc.lpszmenuname:=nil; //Указатель на меню wc.lpszclassname:=a_name; //Имя класса result:=registerclass(wc)<>0; //Вызов процедуры регистрации end; //функция создания и отображения окна function wincreate:hwnd; var hW:hwnd; //Хандл begin // процедура создания окна a_name - класс 'Cool'-заголовок //1 и 1 - координаты начала окна, 500 и 500 - координаты конца окна hw:=createwindow(a_name,'Cool',WS_OVERLAPPEDWINDOW,1,1,500,500,0,0,hinstance,nil); if hw<>0 then begin showwindow(hw,sw_show);//Отображение updatewindow(hw);//Обновление end; result:=hw; end; begin a_name:='Cooling'; if not winreg then begin messagebox(0,'No Window Registred.',nil,mb_ok); exit; end; hw:=wincreate; if hw=0 then begin messagebox(0,'No window created.',nil,mb_ok); exit; end; while getmessage(am,0,0,0)do begin translatemessage(am); dispatchmessage(am); end; halt(am.wparam); end.
Со всем остальным ещ╠ не совсем разобрался, но как разберусь сразу напишу. К началу следующей недели наверно можно ожидать описание различных констант.
Пишите мне наpermvas@chat.ru griaznoff@mail.ru
1.11.99