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

Вниз

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

 
Anton S.   (2005-09-02 22:13) [0]

Как используя API-функции поместить на форму какой-нибудь элемент управления, например кнопку. Прошу, если можно, пример кода.


 
Турист   (2005-09-02 22:20) [1]


procedure TForm1.Button1Click(Sender: TObject);
begin
 CreateWindow("BUTTON", "Кнопка", WS_CHILD or WS_VISIBLE or BS_PUSHLIKE,
              50, 50, 75, 25, Handle, 0, HInstance, nil)
end;


 
Eraser ©   (2005-09-03 00:08) [2]

Anton S.   (02.09.05 22:13)

Если уже есть форма, зачем для помещения на неё кнопки нужно использовать именно API ф-ии?


 
Fay ©   (2005-09-03 03:05) [3]

2 Anton S.   (02.09.05 22:13)
Зри в "генофонд"


 
Anton S.   (2005-09-04 00:52) [4]

2 Eraser
Форма тоже создана на "чистом" win-API, а вообще просто хочу научиться работать с API.


 
Германн ©   (2005-09-04 01:23) [5]

2 Anton S.   (04.09.05 00:52) [4]

>2 Eraser
>Форма тоже создана на "чистом" win-API, а вообще просто хочу >научиться работать с API.

"Чмстый" WinApi ничего не знает о "формах"! Для него есть только "Окна". Он также не знает, что такое "элемент управления"! А "например кнопка" для него тоже такое же окно, но обрабатывающее сообщения так, как это нужно кнопке.


 
_RusLAN ©   (2005-09-05 18:41) [6]

:))
http://delphimaster.net/view/2-1125684802/


 
Marser ©   (2005-09-06 01:15) [7]

Вот, я как-то пробовал. В данном случае происходит ещё и обработка нажатия на кнопку с помощью wm_command.
program APIprob;

uses
 windows, messages;
var
 wc: TWndClassEx;
 MainWnd,ButWND : HWND;
 Mesg : TMsg;
procedure oncommand(wparam,lparam:longint);
var wmn:word;
   wnd:hwnd;
begin
 wmn:=wparam shr 16;
 wnd:=hwnd(lparam);
 if (wnd=butwnd)and(wmn=bn_clicked) then
   messagebox(0,"dfdf","dfd",mb_ok);
end;
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;
 wm_command:oncommand(wparam,lparam)

  else Result:=DefWindowProc(wnd,msg,wparam,lparam);
 end;
End;
procedure createwin;
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:=100;
 yPos:=150;
 nWidth:=400;
 nHeight:=250;
 MainWnd:=CreateWindowEx (0,"WinMin : Main","Win Min",
                          ws_overlappedwindow,xPos,yPos,
                          nWidth,nHeight,0,0,Hinstance,nil);
 ShowWindow(MainWnd,CmdShow);
end;
procedure createbutton;
begin
 ButWnd:=CreateWindowEx (0,"BUTTON","Button",
                         WS_CHILD,5,5,
                          60,30,MainWND,0,Hinstance,nil);
 ShowWindow(ButWnd,SW_SHOWNORMAL);
end;
begin
 createwin;
 createbutton;
 while GetMessage(Mesg,0,0,0) do begin
   TranslateMessage(Mesg);
   DispatchMessage(Mesg);
 end;
end.



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

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

Наверх




Память: 0.48 MB
Время: 0.076 c
14-1127539197
Карелин Артем
2005-09-24 09:19
2005.10.16
Проверка компьютера касперским.


14-1126879521
TohaNik
2005-09-16 18:05
2005.10.16
Лукашенко резко критикует деятельность ООН и политику США


6-1119560559
viktorovich
2005-06-24 01:02
2005.10.16
Подключение к локальной сети


2-1127217436
ABS
2005-09-20 15:57
2005.10.16
кодировка


9-1115116527
Zwein
2005-05-03 14:35
2005.10.16
Воспроизведение звука





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