Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2004.06.06;
Скачать: [xml.tar.bz2];

Вниз

WinMain   Найти похожие ветки 

 
BJValentine ©   (2004-04-22 13:37) [0]

Мастера, хочу научиться програмить используя только API. Кто-нить может мне скинуть простейшее приложение API?


 
DVM ©   (2004-04-22 13:42) [1]

program p1;
begin
end.


 
BJValentine ©   (2004-04-22 13:44) [2]

А так, чтобы было главное окно и оно могло обрабатывать сообщения?


 
DVM ©   (2004-04-22 13:49) [3]

program winmin;

uses windows, messages;
{!Модули windows и messages  самые необходимые — они обязательно должны быть
объявлены в начале каждой Вашей программы!}

var   wc : TWndClassEx;//Переменная шаблона класса окна
MainWnd : HWND;       //Описатель главного окна
   Mesg : TMsg;       //Переменная для цикла сбора сообщений

{  Далее следует оконная процедура главного окна. Обратите внимание на служебное
 слово stdcall оно вынуждает компилятор генерировать особый вид кода, который
 может быть вызван любой windows-программой, без этого служебного слова
 программа не сможет  работать вообще!}
function WindowProc(wnd:HWND; Msg : Integer; Wparam:Wparam; Lparam:Lparam):Lresult;
stdcall;
Begin
{Далее происходит цикл обработки сообщений}
case msg of
wm_destroy ://Сообщение посылаемое при уничтожении окна
 Begin
  postquitmessage(0);
  Result:=0;
  exit;
 End;

 else Result:=DefWindowProc(wnd,msg,wparam,lparam);
end;

End;
{Переменные xPos,yPos,nWidth,nHeight в принципе не нужны, однако я их завел
(и вам рекомендую) для лучшей читабельности программы}
var xPos,yPos,nWidth,nHeight : Integer;

begin
{  Далее идет заполнение шаблона класса окна
 подробное описание полей этой записи см. после текста программы}
wc.cbSize:=sizeof(wc);
wc.style:=cs_hredraw or cs_vredraw;
wc.lpfnWndProc:=@WindowProc;
wc.cbClsExtra:=0;
wc.cbWndExtra:=0;
wc.hInstance:=HInstance;
wc.hIcon:=LoadIcon(0,idi_application);
wc.hCursor:=LoadCursor(0,idc_arrow);
wc.hbrBackground:=COLOR_BTNFACE+1;
wc.lpszMenuName:=nil;
wc.lpszClassName:="WinMin : Main";

RegisterClassEx(wc);//Регистрация нового класса в системе
{  Заполнение переменных xPos,yPos,nWidth,nHeight}
xPos:=100;
yPos:=150;
nWidth:=400;
nHeight:=250;

{  Создание главного окна}
MainWnd:=CreateWindowEx(
0,                  //флаги расширенных стилей
"WinMin : Main",    //имя класса окна, данное при заполнении структуры wc
"Win Min",          //заголовок окна
ws_overlappedwindow,//флаги стилей окна
{подробнее о стилях см. после текста программы}
xPos,               //горизонтальная позиция окна
yPos,               //вертикальная позиция окна
nWidth,             //ширина окна
nHeight,            //высота окна
0,                  //описатель родительского окна (parent) или окна-владельца (owner)
0,                  //описатель меню окна (меню нет, нет и описателя)
Hinstance,          //описатель приложения
nil                 //address of window-creation data
);

ShowWindow(MainWnd,CmdShow);//Отображаем окно

//Цикл обработки сообщений
//он может слегка видоизменяться, но эти строчки присутсвуют всегда
While GetMessage(Mesg,0,0,0) do
begin
 TranslateMessage(Mesg);
 DispatchMessage(Mesg);
end;

end.


 
BJValentine ©   (2004-04-22 14:01) [4]

Огромное спасибо! И за коментарии тоже. Буду разбираться сейчас.



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2004.06.06;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.033 c
1-1085314326
GanibalLector
2004-05-23 16:12
2004.06.06
Битовый образ букв...


3-1083799703
miwa
2004-05-06 03:28
2004.06.06
При компиляции приложения закрываются все IBDataSet?


14-1084958483
ИМХО
2004-05-19 13:21
2004.06.06
Посоветуйте проверенный компонент


14-1084606809
Denis_ada
2004-05-15 11:40
2004.06.06
клиент – сервер для работы с файлами и папками


3-1084605195
kukuikar
2004-05-15 11:13
2004.06.06
onCalcFields....................................





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский