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

Вниз

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

 
Обсолютный ноль   (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 вся ветка

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

Наверх





Память: 0.6 MB
Время: 0.042 c
1-99055
don
2002-12-19 13:39
2002.12.30
SendMessage, PostMessage?


14-99265
kronprince
2002-12-11 11:17
2002.12.30
Ненавижу разбирать чужие исходники !!!


3-98984
dias
2002-12-09 18:29
2002.12.30
Мастера, подскажите, в чем причина


1-99106
Misha
2002-12-19 20:23
2002.12.30
Перегрузка операторов


3-99000
opoloXAI
2002-12-10 15:57
2002.12.30
TableName





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский