![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как нарисовать кнопку на форме при помощи 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