Форум: "WinAPI";
Текущий архив: 2007.02.04;
Скачать: [xml.tar.bz2];
ВнизКнопка на statusbar Найти похожие ветки
← →
Феня (2006-09-22 17:22) [0]У меня на окне есть два компонета :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;
а если написать хендл главного окна, то все рабоает. Может кому то покажется этот вопрос смешным, но я не понимаю, где ошибка...
← →
clickmaker © (2006-09-22 17:25) [1]
> $40000000 or $10000000
матерь божья... а чем WS_XXX не угодили?
по теме: кнопка шлет WM_COMMAND окну, на котором она лежит. Вот и думай. Где ты обрабатываешь WM_COMMAND?
← →
Феня (2006-09-22 17:30) [2]ну просто как то привык так писать.....
у меня только (пока) одно окно и обрабатываю его
..
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:37) [3]
> [2] Феня (22.09.06 17:30)
Для тех, кто в танке еще раз: если кнопка лежит на статусбаре, то и ловить WM_COMMAND от нее надо в WindowProc статусбара, а не главного окна.
← →
Феня (2006-09-22 17:41) [4]а разве то, что я указал
..
while GetMessage(Msg,0, 0, 0) do
он ловит не все сообщения??
← →
clickmaker © (2006-09-22 17:43) [5]
> [4] Феня (22.09.06 17:41)
он-то ловит все. Но вся правда в волшебной строчке
DispatchMessage(Msg);
← →
Феня (2006-09-22 17:46) [6]т.е? %-(
← →
Ketmar © (2006-09-22 18:31) [7]т.е. не надо больше писать на API, пока не проштудируешь соответствующую литературу. более того, после фразы "есть два компонента" и следующим за ней CreateWindowEx() вообще мало о чём можно говорить.
← →
__Гость__ (2006-09-22 21:15) [8]кетмар, что ты развопился как слон, которого смертельно ранили бананом???? Человек хочет научиться программировать на апи, а ты на него сразу налетаешь!!! он просто ошибся (вместо компонента надо было написать элемента, и всего, а вони от тебя, как общественного туалета, который не убирали неделю). если ты такой умный, помоги ему, а если НЕТ, то тебе молчать надо (и книжки читать).
А тебе феня, удачи и не обращай внимания на некоторых участников, как говорится в семье не без.....
← →
Ketmar © (2006-09-22 21:29) [9]>[8] __Гость__ 22-Sep-2006, 21:15
поулыбался.
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2007.02.04;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.045 c