Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.12.30;
Скачать: CL | DM;

Вниз

Вопросик...   Найти похожие ветки 

 
Обсолютный ноль   (2002-11-06 14:48) [0]

Вопрос: привидите по жалуйста простенький пример програмы с формой написанной на API.
Заранее благодарен.


 
Игорь Шевченко ©   (2002-11-06 15:46) [1]

А это что за язык такой ?


 
Lexa1900   (2002-11-06 20:22) [2]

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); exit;

Result:=0;
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, //флаги стилей окна
{подробнdее о стилях см. после текста программы}
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.

Взято из Rus WinAPI Help - скачай с сайта, пригодится!


 
Обсолютный ноль   (2002-11-08 06:09) [3]

Спасибо!!!


 
Lony ©   (2002-11-08 11:55) [4]

Lexa1900
А это куда можно вставить, в консоль?


 
Lexa1900   (2002-11-08 13:29) [5]

в View Source..., перед этим удалив Unit1 щёлкнув на Remove from Project...


 
Обсолютный ноль   (2002-11-08 19:18) [6]

Ну и наконец, а где можно достать ХОРОШИЙ Help по WinAPI?
И наконец... как создать Edit и Button через этот самый WinAPI


 
Alex44   (2002-11-08 19:38) [7]

> И наконец... как создать Edit и Button через этот самый WinAPI

Okno classa "EDIT" ili "BUTTON"


 
TankMan ©   (2002-11-09 00:33) [8]

А потом еще будет вопрос... "ну и самый что ни наесть последний вопрос - а как отлавливать событие по нажатию на эту Button и Edit?" :LOL:


 
Ich Hasse ©   (2002-11-09 15:50) [9]

wm_system: begin case WParam of begin end; end;


 
Обсолютный ноль   (2002-11-10 06:43) [10]

Так сам HELP где взять?


 
Василий2 ©   (2002-11-10 08:17) [11]

Или WM_COMMAND...


 
Alex44   (2002-11-10 12:30) [12]


> Так сам HELP где взять?


Pochemu-to k help"u, vyzyvaemomu iz delphi, WinAPI ploho prilinkovan. No esli prosto otkrut"
.../Borland Delphi 6/Help/MS SDK Help Files/Win32 SDK Reference,
to tam vse est" i vse prekrasno ishetsya.


 
Qpwoe! ©   (2002-11-11 19:28) [13]

Насчёт класса EDIT или BUTTON так его вообще в API нету так что можно сделать только создав дополнительную функции прорисовки!


 
Обсолютный ноль   (2002-11-14 05:55) [14]


> .../Borland Delphi 6/Help/MS SDK Help Files/Win32 SDK Reference,
> to tam vse est" i vse prekrasno ishetsya.

Такого вообще нет!

Ну так подскажите где HELP взять?


 
noone_nowhere   (2002-11-14 16:32) [15]

на этом сайте в кладовке


 
Обсолютный ноль   (2002-11-15 07:14) [16]

Уже смотрел... не нашёл:(


 
Обсолютный ноль   (2002-11-15 15:17) [17]

ОПС, нашёл... Уже качается:)


 
Jack128 ©   (2002-11-15 16:10) [18]

2 Qpwoe!
>>Насчёт класса EDIT или BUTTON так его вообще в API нету так >>что можно сделать только создав дополнительную функции >>прорисовки!
как нету - есть!!
GetClassInfo - их параметры
меняешь оконную функцию на свою а старую запоминаешь
в своей WindowProc сначало вызываешь старую оконную функцию
а потом реализуешь необходимые тебе действия




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

Текущий архив: 2002.12.30;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.03 c
1-99130
Dmitriy_R
2002-12-18 06:29
2002.12.30
EMail Server


3-98971
BSD
2002-12-09 17:01
2002.12.30
Использование плана в тригере


14-99311
down
2002-12-09 21:22
2002.12.30
Удобство использования ЭВМ


1-99043
Balkon
2002-12-19 11:01
2002.12.30
...??????-так выглядит весь текст приложения!


1-99064
don
2002-12-19 14:23
2002.12.30
ADODataSet