Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.11.27;
Скачать: 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 вся ветка

Текущий архив: 2003.11.27;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.025 c
3-89726
WondeRu
2003-11-10 08:45
2003.11.27
Как Изменить высоту строк в TDBGRID ?


4-90171
Lord Warlock
2003-09-18 09:29
2003.11.27
WM_QUERYENDSESSION


1-89807
Хрюначок
2003-11-18 17:02
2003.11.27
Архив


1-89932
Nucl
2003-11-17 18:02
2003.11.27
Картинки из TImageList


14-90133
Сатир
2003-11-03 14:51
2003.11.27
Помогите расшифровать