Форум: "WinAPI";
Текущий архив: 2002.10.28;
Скачать: [xml.tar.bz2];
ВнизКак кликнуть по Radiobutton в дочернем окне чужого приложения? Найти похожие ветки
← →
Denvor (2002-09-14 03:27) [0]Проблемма состоит в том, что на одной дочерней форме есть три радиобаттона. Мне програмно надо клукнуть по каждому в отдельности и вот книгу листаю по ВинАпи, FAQ читаю, нахожу какие-то похожие по смыслу коды, но нигде не описано толком что это значит. Вот и не могу идею за хвост уцепить! Помогите пожалуйста.
← →
Song (2002-09-14 10:18) [1]BM_CLICK
← →
Song (2002-09-14 10:19) [2]BM_SETCHECK
← →
Denvor (2002-09-15 04:11) [3]Ну вот приведу кусок программы, кто знает ошибку, помогите:
h1:=GetTopWindow(GetActiveWindow);\\Берём хэндл активного окна \\активного приложения.
Str12:="Button"+CHR(0);
Str22:="Name1"+CHR(0);
h2:=FindWindowEx(h1,GetTopWindow(GetActiveWindow),PCHar(Str12),null);\\Ищем в активном окне
хэндл окна класса Button
if h2<>0 then Result:=SendMessage(h2,BM_CLICK,null,null);
\\Програмно нажимаю на эту кнопку
Но вот вопросец, ведь если на форме несколько кнопок, как взять нужную или перебирать их хэндлы?
Вообще то я программу в VBA пишу, и мне надо менять настройки в вызванных диалоговых окнах. Может макрос приостанавливается, при вызове этого диалога?
← →
Крутов Дмитрий (2002-09-15 05:03) [4]Вы можете создать пользовательское сообщение,
и в WParam передавать, например индекс требуемого
элнмента радиогруппы.
в главной форме пишите:
SendMessage(HWNDChildForm,WM_YuorMessage,NewIndexRadiogroup,0);
в дочереней:
procedure WMYuorMessage(Var Msg :TMessage);message WM_YuorMessage;
в теле этой процедуры используете
Msg.WParam, в котором содержится переданый
индекс.
Не забудьте объявить в обоих модулях, или в общем:
Const
WM_YuorMessage = WM_User+1;
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2002.10.28;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.007 c