Вниз
Скачать: CL | DM;

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

← →
acsoft ©   (2003-08-18 08:02) [0]

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


← →
Крот ©   (2003-08-18 08:21) [1]

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


← →
Prov ©   (2003-08-19 09:39) [2]

Какой 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-19 09:46) [3]


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


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


← →
acsoft ©   (2003-08-24 12:12) [4]

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


← →
kalishenko   (2003-10-02 17:12) [5]

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


← →
Polevi ©   (2003-10-02 17:54) [6]

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


← →
Polevi ©   (2003-10-02 17:55) [7]

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


← →
Polevi ©   (2003-10-02 17:55) [8]

блин, BN_CLICKED


← →
andre ©   (2003-10-02 17:55) [9]

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

WINAPI рулезЗз!


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

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


← →
andre ©   (2003-10-02 19:03) [11]

Можно.
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 20:03) [12]

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

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


← →
Polevi ©   (2003-10-02 20:16) [13]

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:40) [14]

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


← →
kalishenko   (2003-10-02 20:54) [15]

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

???

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


← →
Игорь Шевченко ©   (2003-10-02 22:59) [16]

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

kalishenko (02.10.03 20:54) [15]

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


← →
andre ©   (2003-10-03 01:49) [17]

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


← →
MBo ©   (2003-10-03 06:13) [18]

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


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

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



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

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.024 c
6-90017
Данила
2003-10-01 22:00
2003.11.27
Webserver на Делфи


3-89676
bobtubob
2003-11-06 09:39
2003.11.27
как добавить поле в ADO


1-89892
Talla2k
2003-11-15 12:29
2003.11.27
MDI и Child


3-89765
Zanik
2003-11-07 15:23
2003.11.27
Access violation в TWebModule


1-89910
hellmachine
2003-11-15 04:23
2003.11.27
Возможно ли программно определить - был ли перекрыт виртуальный




   Наверх