Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как правильно сделать окно активным? [D6, WinME]


Vemer ©   (2003-11-23 17:27:00) 

Здравствуйте.
Подскажите пожалуйста, как сделать окно программы активным, не зависимо от его состояния, а то код типа: ShowWindow(Wnd,SW_SHOWNORMAL)почему-то делает его активным только из свернутого состояния, а желательно, чтобы независимо от состояния окна оно становилось активным (с разворачиванием по необходимости). Может в свойствах формы чего подправить надо?


mRodion   (2003-12-03 11:20:00) [1]

Мне помогло это:
SendMessage (Handle,WM_SETFOCUS, 0, 0);
Но спасибо за советы


DVM   (2003-12-02 18:57:00) [2]


> Игорь Шевченко © (02.12.03 18:35) [10]

Не факт, что окно в XP/2000 при этом получит клавиатурный фокус.


Игорь Шевченко   (2003-12-02 18:35:00) [3]

Vemer © (28.11.03 10:17)

ShowWindow + BringWindowToTop();


mRodion   (2003-12-02 17:24:00) [4]

2 Diamond Cat:
Вы сказали: "высветить окно поверх всех и сделать ему "синий" капшион или передать ему клавиатурный фокус,
как показала практика это разные вещи"
Мне ненужно передать клавиатурный фокус одному из дочерних окон MDI приложения. Как я могу это сделать?


Vemer   (2003-11-28 10:17:00) [5]

Всем спасибо, народ, я с системным программированием первый раз сталкиваюсь, поэтому сильно не пинайте :).
А под активацией я как раз и имел в виду "синий капшион + клавиатурный фокус + развертывание по необходимости", кстати как это дело хоть правильно зовется.


Diamond Cat   (2003-11-27 23:26:00) [6]

по msdn посмотри это раз, а два что ты имеешь в виду под активацией, просто высветить окно поверх всех и сделать ему "синий" капшион или передать ему клавиатурный фокус,
как показала практика это разные вещи


DVM   (2003-11-27 18:17:00) [7]


> В моей 6-ой дельфе неизвестного происхождения такого файла
> нет к сожалению.

В моей, к сожалению, тоже :)))

User32.dll
Kernel32.dll
GDI32.dll
- "три кита" на которых держится Windows. Этот файл у вас есть точно:)

Неужели так трудно было поискать:
http://www.yandex.ru/yandsearch?rpt=rad&text=SwitchToThisWindow

procedure SwitchToThisWindow(wnd : HWND; bRestore: BOOL); stdcall; external "user32.dll" name "SwitchToThisWindow";

wnd - описатель окна, которому следует передаь фокус;
bRestore - TRUE, если нужно восстановить минимизированное окно.


Vemer   (2003-11-26 19:07:00) [8]

To DVM >
В моей 6-ой дельфе неизвестного происхождения такого файла нет к сожалению.


DVM   (2003-11-26 18:33:00) [9]


> что за команда такая, какого модуля (в Uses)требует?

user32.dll


Vemer   (2003-11-26 13:02:00) [10]

Пишу в редакторе SwitchToThisWindow, выделяю, жму F1 - а в ответ тишина, что за команда такая, какого модуля (в Uses)требует?


DVM   (2003-11-24 18:46:00) [11]

SwitchToThisWindow(). См. MSDN.


KosilkA   (2003-11-23 19:00:00) [12]

попробуй написать SW_SHOWNORMAL or SW_RESTORE


Наверх

Титульная страница Поиск, карта сайта Написать письмо