2014-09-02 7 views
0

У меня есть приложение, в основном написанное с совой.C++: owlnext + vcl: New Window missing its Parent

Там я хочу открыть новые vcl-окна из главного сова-окна.
Это отлично работает, хотя если открывается диалоговое окно (даже с ShowModal), и я фокусирую другое приложение, то основное окно попадает на передний план, но блокируется окном за ним.

Я предполагаю, что проблема - отсутствие установки родительского элемента.

Тем не менее, я не могу преобразовать owl's TWindow в vcl's TWinControl.

Есть ли уловка, чтобы установить parent vcl в настройку owl's TWindow -Object? Или это может быть вызвано чем-то совершенно другим?

EDIT: Я использую ...

void(TWindow* parent){ 
    Form=new TForm((HWND)parent->Handle); 
    Form->ParentWindow=parent->Handle; 
    Form->BorderIcons >> biMinimize >> biMaximize << biSystemMenu; //No minimize, no maximize, but close 
    Form->BorderStyle = bsSingle; 
    Form->Position = poMainFormCenter; 
    ... 
    Form->ShowModal(); 

... теперь. Однако новое окно заблокировано и не может быть нажато/закрыто/переключено на. Есть ли что-то, что я пропустил в использовании ParentWindow?

EDIT2: Я думаю, что это может быть проблема, что родитель является TDecoratedMDIFrame, который является MDI-Container, поэтому диалог моего рассматривается как МДИ ребенок вместо нормального диалога ...

+0

Обязательно прочтите описания тэгов wiki. Этот вопрос был помечен тегом [tag: owl], но это не касается OWL, языка веб-онтологии. Я удалил тег. –

+0

@JoshuaTaylor: OWL (Библиотека окон объектов) является предшественником VCL и продолжается как [проект с открытым исходным кодом] (http://owlnext.sourceforge.net). Вероятно, для него создан новый тег. –

+0

Да, я видел некоторые вопросы об этом раньше. Просто это [tag: owl] для чего-то другого. –

ответ

1

TWinControl имеет свойство ParentWindow для указания родительского окна, отличного от VCL.

Кроме того, в современных версиях VCL вы можете указать ParentWnd при отображении диалога VCL.

+0

Спасибо за ответ! Это было именно то, что я искал, но мне кажется слишком скучным, чтобы использовать его правильно.^Я добавил EDIT по моему вопросу выше: новая vcl-форма заблокирована и не отвечает – Julian