Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.10.01;
Скачать: [xml.tar.bz2];

Вниз

PostMessage(<окно>, wm_LButtonDown, 0, <координаты>)-не пашит :(   Найти похожие ветки 

 
Murava ©   (2006-09-12 23:50) [0]

Помогите!!! Хочу нажать левую кнопку мыши, пишу:
PostMessage(<окно>, wm_LButtonDown, 0, <координаты>)
Если нажимаю на форме, то все отлично работает, но если координаты указуют на кнопку на этой форме, то ничего не происходит(события при OnMouseDown на форме выполняюся, а на кнопки НЕТ). Что делать??? Подскажите.
И еще: можно ли каким-то образом получить объект самой кнопки??(или другого объекта на окне)


 
Джо ©   (2006-09-13 00:02) [1]


 PostMessage(Handle,wm_LButtonDown,0,Coords);
 PostMessage(Handle,WM_LBUTTONUP,0,Coords);


А лучше код покажи, что ты там делаешь.


> И еще: можно ли каким-то образом получить объект самой кнопки?
> ?(или другого объекта на окне)

О каком "объекте" ты говоришь в контексте WinApi?


 
murava ©   (2006-09-13 00:50) [2]

procedure TForm1.Button1Click(Sender: TObject);
var h:hwnd;
begin
 h:=FindWindow(nil, "Form1");
 PostMessage(h, wm_LButtonDown, 0, 100*65536+100);
end;

вообщем это и есть весь код. На форме находится две кнопки: Button1 и кнопка, которая лежит на координатах (10, 10). Когда я убирал вторую кнопку и обрабатовал события ОnMouseDown на форме с координатами (10, 10), то событие отлично выполнялось, а вот когда я сделал аналогисные действия на кнопке, то... ничего не происходит


 
murava ©   (2006-09-13 00:57) [3]

To Джо:
 Еще я заметил, что когда я нажимаю(вручную левой кнопкой мыши) на Button1, а потом пытаюсь нажать(тоже с помощью левой кнопки мышы) на вторую кнопку (Button2), то она (Button2) не становилась активной и не нажималась(как будто заблокирована), а вот после еще одного нажатия уже выполнялось события OnMouseDown для Button2... Может подскажешь из-за чего это может происходить. Возможно это и есть причиной того, что не выполняется PostMessage(...)??


 
Murava ©   (2006-09-13 01:45) [4]

p.s.
 Напишу точнее:
procedure TForm1.Button1Click(Sender: TObject);
var
i:longbool;
begin
 h:=FindWindow(nil, "Form1);
 i:=PostMessage (h, wm_LButtonDown, 0, 100*65536+100);
 if i then showmessage("1");
 i:=PostMessage(h, wm_LButtonUp, 0, 100*65536+100);
 if i then showmessage("2");
end;

procedure TForm1.Button2MouseDown(Sender: TObject; Button: TMouseButton;
 Shift: TShiftState; X, Y: Integer);
begin
ShowMessage("ButtonMouseDown");
end;

procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
 Shift: TShiftState; X, Y: Integer);
begin
ShowMessage("FormMouseDown");
end;

когда кнопка НЕ лежит на (100, 100), то-есть выполняется FormMouseDown, то выводятся сообщения "FormMouseDown", "1", "2". Самое главное, что когда кнопка покрывает (100, 100), то все-равно выводятся "FormMouseDown", "1", "2". То-есть "нажимается" именно форма, а не кнопка. ПОЧЕМУ??? И как нажать кнопку???

P.P.S. Насчет "неактивной кнопки" я понял. Просто я сначала посылал wm_LButtonDown, а вот про wm_LButtonUp забыл :). Но все-равно должно ж выполняться или Button2MouseDown или хотя б Button2Click...


 
Ketmar ©   (2006-09-13 01:53) [5]

> [4] Murava ©   (13.09.06 01:45)
кнопка -- это тоже окошко. удивись. с чего бы ей "нажиматься", если сообщение посылается вовсе и не ей?


 
Murava ©   (2006-09-13 09:52) [6]

To Ketmar:
тогда как мне получить это окошко(пусть это будет кнопка с координатами 100, 100), если у меня есть объект основного окна?


 
Сергей М. ©   (2006-09-13 12:41) [7]

WindowFromPoint


 
GrayFace ©   (2006-09-13 15:18) [8]

Button1.Handle



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

Форум: "Начинающим";
Текущий архив: 2006.10.01;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.014 c
9-1136053715
haZard0us
2005-12-31 21:28
2006.10.01
GLScene=ландшафт+тайлы


3-1154020959
a123
2006-07-27 21:22
2006.10.01
Комментарии в SQL запросах


1-1156251925
DmitryFox
2006-08-22 17:05
2006.10.01
Построить дерево классов


1-1155723489
Aleksandr.
2006-08-16 14:18
2006.10.01
Как отключать нажатие кнопок после выбора системной кнопки Help?


2-1158164932
Danla13
2006-09-13 20:28
2006.10.01
картинки и Delphi





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский