![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Кнопка на statusbar [D7, WinXP]
Феня © (2006-09-22 17:22:00)У меня на окне есть два компонета :statusbar и button.
..
Handle:=CreateWindowEx(0,'Form','ХХХ',$400000 or $10000000,219,116, 275,120,0,0,hInst nil);
...
StatusBar1:=CreateWindow('msctls_statusbar32',nil,$40000000 or $10000000,0,0,0,50,Handle,1,hInst,0);
если я напишу
..
Button3:=CreateWindow('Button','Exit',$40000000 or $10000000 or 0, 203,4,64,17,StatusBar1,0,0,nil);
то в нажатие на эту кнопку не обрабатывается кодом
..
while GetMessage(Msg,0, 0, 0) do
begin
TranslateMessage(Msg);
DispatchMessage(Msg);
end;
а если написать хендл главного окна, то все рабоает. Может кому то покажется этот вопрос смешным, но я не понимаю, где ошибка...
Ketmar (2006-09-22 21:29:00) [1]>[8] __Гость__ 22-Sep-2006, 21:15
поулыбался.
__Гость__ (2006-09-22 21:15:00) [2]кетмар, что ты развопился как слон, которого смертельно ранили бананом???? Человек хочет научиться программировать на апи, а ты на него сразу налетаешь!!! он просто ошибся (вместо компонента надо было написать элемента, и всего, а вони от тебя, как общественного туалета, который не убирали неделю). если ты такой умный, помоги ему, а если НЕТ, то тебе молчать надо (и книжки читать).
А тебе феня, удачи и не обращай внимания на некоторых участников, как говорится в семье не без.....
Ketmar (2006-09-22 18:31:00) [3]т.е. не надо больше писать на API, пока не проштудируешь соответствующую литературу. более того, после фразы "есть два компонента" и следующим за ней CreateWindowEx() вообще мало о чём можно говорить.
Феня (2006-09-22 17:46:00) [4]т.е? %-(
clickmaker (2006-09-22 17:43:00) [5]
> [4] Феня (22.09.06 17:41)
он-то ловит все. Но вся правда в волшебной строчке
DispatchMessage(Msg);
Феня (2006-09-22 17:41:00) [6]а разве то, что я указал
..
while GetMessage(Msg,0, 0, 0) do
он ловит не все сообщения??
clickmaker (2006-09-22 17:37:00) [7]
> [2] Феня (22.09.06 17:30)
Для тех, кто в танке еще раз: если кнопка лежит на статусбаре, то и ловить WM_COMMAND от нее надо в WindowProc статусбара, а не главного окна.
Феня (2006-09-22 17:30:00) [8]ну просто как то привык так писать.....
у меня только (пока) одно окно и обрабатываю его
..
function WindowProc(hwnd, msg, wparam, lparam: longint): longint; stdcall;
begin
Result := DefWindowProc(hwnd, msg, wparam, lparam);
case Msg of
$0111 :begin //wm_command
if (lParam = Bstart ) and (HiWord(wParam) = 0) then start;
if (lParam = Button3) and (HiWord(wParam) = 0) then shutdown;
if (lParam = BExit) and (HiWord(wParam) = 0) then ShowWindow(S_handle, 0);
end;
$0002 : ShutDown; //wm_destroy
$0113 : _timer; //wm_timer
end;
end;
clickmaker (2006-09-22 17:25:00) [9]
> $40000000 or $10000000
матерь божья... а чем WS_XXX не угодили?
по теме: кнопка шлет WM_COMMAND окну, на котором она лежит. Вот и думай. Где ты обрабатываешь WM_COMMAND?