Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как нарисовать кнопку на форме при помощи API?


acsoft ©   (2003-08-18 08:02:00) 

Как нарисовать кнопку на форме при помощи API? Извините, уже задавал этот вопрос, но из-за перестройки форума потерял ответы.


программер.ру   (2003-10-03 17:42:00) [1]

Удалено модератором
Примечание: Задай свой вопрос в отдельной ветке


MBo   (2003-10-03 06:13:00) [2]

Петцольд в своей книге ответит на ваши вопросы в лучшем виде.


andre   (2003-10-03 01:49:00) [3]

Удалено модератором
Примечание: Offtopic


Игорь Шевченко   (2003-10-02 22:59:00) [4]

const id_exit = 100, например

kalishenko (02.10.03 20:54) [15]

Хоть какую-то книжку можно почитать ? Или online-обучение устроим ?


kalishenko   (2003-10-02 20:54:00) [5]

И какое отношение имеет id_exit к
HMENU hMenu, // handle to menu, or child-window identifier

???

Как я понял - это идентификатор создаваемого объекта. А где id_exit его получает, я никак не пойму.


kalishenko   (2003-10-02 20:40:00) [6]

А какого типа id_exit? THandle?


Polevi   (2003-10-02 20:16:00) [7]

LRESULT CALLBACK WindowProc(
HWND hwnd, // handle of window
UINT uMsg, // message identifier
WPARAM wParam, // first message parameter
LPARAM lParam // second message parameter
);


kalishenko   (2003-10-02 20:03:00) [8]

В строке
case nMsg of WM_COMMAND: begin

выдается ошибка "ordinal type required" (nmsg, как я понимаю, TMessage или Cardinal ?).


andre   (2003-10-02 19:03:00) [9]

Можно.
case nMsg of
wm_Command: begin
case LoWord(wParam) of
id_exit: begin
PostQuitMessage (0)
end;
end;
end;

Создаём кнопку:
CreateWindowEx (0, "BUTTON", "&Exit", ws_Child or ws_Visible or ws_Border or bs_PushButton,
176, 220, 75, 25, hwnd, id_exit, hInstance, nil);


kalishenko   (2003-10-02 18:36:00) [10]

А код можно сюда бросить?


andre   (2003-10-02 17:55:00) [11]

Ловите wm_Command, смотрите параметр LoWord(wParam), а из него извлекете ID кнопки. Ну а дальше как обычно...

WINAPI рулезЗз!


Polevi   (2003-10-02 17:55:00) [12]

блин, BN_CLICKED


Polevi   (2003-10-02 17:55:00) [13]

это если нарисовали, если создали BM_CLICK


Polevi   (2003-10-02 17:54:00) [14]

обрабатывать WM_LBUTTONDOWN очевидно


kalishenko   (2003-10-02 17:12:00) [15]

Хорошо, создать-то создали, а как сотворить обработчик событий для этой самой кнопки (например, сделать Close приложению по нажатию на нее)?


acsoft   (2003-08-24 12:12:00) [16]

Замечательно, а как быть с кнопками XP?
(разумеется, я хочу их создавать, работая в XP :)))


Крот   (2003-08-19 09:46:00) [17]


> Prov © (19.08.03 09:39) [2]


Значит так и надо формулировать - "Создать". Правильно заданный вопрос - половина ответа. Даже больше.


Prov   (2003-08-19 09:39:00) [18]

Какой DrawFrameControl ??? Вы что ??? Понятно, что не нарисовать надо, а создать...
Вот:

var Button: hWnd;

Button:= CreateWindow("BUTTON",
"&Button",
WS_CHILD or BS_PUSHLIKE or WS_OVERLAPPED,
4,
94,
236,
24,
Handle,
0,
hInstance,
nil);
ShowWindow(Button, SW_SHOW);


Крот   (2003-08-18 08:21:00) [19]

Просто нарисовать? DrawFrameControl


Наверх

Титульная страница Поиск, карта сайта Написать письмо