Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Как переместить выделение с одной кнопки на другую?  (Прочитано 17822 раз)
0 Пользователей и 3 Гостей смотрят эту тему.
pupk1n
Гость
« : 13-03-2008 17:04 » 

Пробовал
SendMessage(wnd, WM_SETFOCUS, wnd2, 0); пост тоже пробовал результат идентичен, получаеться что фокус так и остаеться где он был, а появляеться ещё один фокус на другой кнопке(т.е. два фокуса). Странно...
Пробовал ещё WM_KILLFOCUS таже история...=(
Записан
pupk1n
Гость
« Ответ #1 : 13-03-2008 17:07 » 

забыл написать ну думаю тут и так это понятно:
wnd - кнопку на которую хочу поставить фокус, wnd2 - c которой убрать
Записан
zubr
Гость
« Ответ #2 : 13-03-2008 17:58 » 

Используй метод TButton SetFocus (Button1.SetFocus) и будет тебе счастье.
Записан
pupk1n
Гость
« Ответ #3 : 15-03-2008 09:52 » 

Забыл сказать в чужом окне... как я понимаю, то что ты написал это немного нето=)
Записан
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #4 : 15-03-2008 10:02 » 

Ишеш Handle окна с помошью WinAPI функции FindWindow http://msdn2.microsoft.com/en-us/library/ms633499.aspx. Затем c помошью ּSetFocus http://msdn2.microsoft.com/en-us/library/ms646312.aspx делаеш активным.
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
pupk1n
Гость
« Ответ #5 : 15-03-2008 11:54 » new

        wnd:=FindWindow(0, 'Program');
        wnd:=FindWindowEx(wnd, 0, 'button', 'Start');
        windows.SetFocus(wnd);

неработает, или я не правельно делаю что-то?
Записан
zubr
Гость
« Ответ #6 : 15-03-2008 12:34 » 

Код:
wnd:=FindWindow(nil, 'Program');
wnd:=FindWindowEx(wnd, 0, 'button', 'Start');
windows.SetFocus(wnd);
Записан
pupk1n
Гость
« Ответ #7 : 16-03-2008 10:22 » 

zubr, от того что ты заменил 0 на nil как будто много поменял=)
не в этом дело окно он находит... а вот фокус нехочет никак ставить
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #8 : 16-03-2008 11:35 » 

а PostMessage(wnd,WM_SETFOCUS,0,0) не поможет ?
Записан

pupk1n
Гость
« Ответ #9 : 17-03-2008 07:20 » 

в певом посте же писал - не помогоает, появляеться ещё один фокус=)
Записан
sss
Специалист

ru
Offline Offline

« Ответ #10 : 17-03-2008 07:30 » 

pupk1n, возможно это просто не прорисовка кнопки потерявшей фокус? Попробуй SendMessage и проанализируй возврат.
Записан

while (8==8)
pupk1n
Гость
« Ответ #11 : 17-03-2008 07:38 » 

скорее нет,  если наченешь его передвикать руками, то будет передвигаться старый фокус(который был изначально), а не вновь появившийся...

попробую всё-равно
Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #12 : 17-03-2008 07:47 » 

так... Расскажи, что ты понимаешь под словом "фокус" ?
Записан

sss
Специалист

ru
Offline Offline

« Ответ #13 : 17-03-2008 08:07 » 

Ага, как это два фокуса? Да и вообще, пошли TAB да и все...
Записан

while (8==8)
pupk1n
Гость
« Ответ #14 : 17-03-2008 11:25 » 

с удовольствием послалбы, скажи wparam? это WM_KEYDOWN, WM_KEYUP как я понимаю
Записан
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #15 : 17-03-2008 12:23 » 

появляеться ещё один фокус=)

pupk1n, Поздравляю! Ты открыл новую недокументированную фичу винды - двойной фокус. А какая копка отрабатывает, если в момент двойного фокуса нажать пробел?

А может у тебя проблема с перерисовкой кнопки? Ага
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
sss
Специалист

ru
Offline Offline

« Ответ #16 : 18-03-2008 01:29 » 

pupk1n, пошли один WM_KEYDOWN wParam = 9 (VK_TAB) lParam = 0x0F0001.
« Последнее редактирование: 18-03-2008 05:24 от sss » Записан

while (8==8)
pupk1n
Гость
« Ответ #17 : 21-03-2008 14:05 » 

sss, спасибо попозже попробую щас веремени нету
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines