![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как сделать PopUp окно с WinControl-ами которое не отбирает фокус [D7]
Alexey Ponomarev © (2003-12-09 17:35:00)
Добрый день.
Имею следующую проблему:
Нужно сделать окно, которое будет висеть над основным окном (StayOnTop) при этом фокус будет оставаться в основном окне.
Глянув на то как сделан TJvCalcEdit (это от Rx-ов им досталось)
сделал я такое окошко, но проблема состит в том что в этом окошке кроме TSpeedButton-ов (компонент не получает фокуса) есть еще наследники TWinControl (ListView, ComboBox). А вот они отбирают фокус :-(
Есть какая нить возможность добиться от них что бы они фокус не отбирали? Enable := false не рассматривается, т.е. работать с ними все равно надо.
Вот такие пироги...
Reneg@de (2003-12-11 10:30:00) [1]
В res.rc у нас уже есть ресурс треб. DialogBox"a e.g. IDD_AUX...
#include "resource.h"
CreateDialog(hInst,MAKEINTRESOURCE(IDD_AUX),hWndMain,(DLGPROC)AuxDialogProc)
Mielofon (2003-12-11 08:54:00) [2]
> На WM_SETFOCUS возвращать фокус туда, откуда он пришёл для
> всех своих окошек с фокусами не пробовал?
Пробовал конечно. Мелькание остается :-(
Если ничего не получится, то так и оставим, только мелькание замедлим искусственно, что бы не так раздражало.
nikkie (2003-12-10 19:11:00) [3]
если контроль написан так, что он ожидает фокус... можно конечно попробовать сделать, например, как Suntechnic предлагает. но кривизна обеспечена, имхо.
Suntechnic (2003-12-10 16:27:00) [4]
На WM_SETFOCUS возвращать фокус туда, откуда он пришёл для всех своих окошек с фокусами не пробовал?
Mielofon (2003-12-10 15:18:00) [5]
> значит надо использовать графические контроли исключительно.
А по другому ни как? А то переписывать StringGrid, ListBox, ComboBox желания не возникает...
nikkie (2003-12-10 15:00:00) [6]
значит надо использовать графические контроли исключительно.
Mielofon (2003-12-10 14:56:00) [7]
> MyForm.ShowModal - not Good
>
> MyForm.Show - Good
И чего? По вопросу то что?
Я даже больше скажу - ShowWindow(Form2.Handle, SW_SHOWNOACTIVATE) Гуд (именно им и пользуюсь в данном примере).
Фокус то все равно отбирается если ткнуть мышью...
SSergey (2003-12-10 11:48:00) [8]
MyForm.ShowModal - not Good
MyForm.Show - Good