2014-09-02 32 views
0

我有一個應用程序主要與貓頭鷹庫文字。c + +:owlnext + vcl:新窗口缺少它的父

在那裏我想打開新的主窗口中的vcl窗口。
這很好,但如果打開一個對話框窗口(即使用ShowModal),並且我關注另一個應用程序,那麼主窗口會進入前景,但被後面的窗口阻擋。

我想問題是缺少父母設置。

但是,我無法將owl的TWindow轉換爲vcl的TWinControl

有沒有把vcl的parent設置爲owl's的技巧TWindow -Object? 或者這可能是由完全不同的東西引起的?

編輯: 我使用...

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容器,所以我的對話就像一個MDI-孩子,而不是一個正常的對話處理...

+0

請務必閱讀標籤維基說明。這個問題被標記爲[tag:owl],但它不是OWL,即Web本體語言。我已經移除了標籤。 – 2014-09-02 20:34:20

+0

@JoshuaTaylor:OWL(對象窗口庫)是VCL的前身,並作爲[開源項目](http://owlnext.sourceforge.net)繼續進行。可能需要爲它創建一個新標籤。 – 2014-09-02 23:54:36

+0

是的,我之前看過一些關於它的問題。只是[tag:owl]是爲了別的東西。 – 2014-09-03 00:33:06

回答

1

TWinControl具有用於指定非VCL父窗口的ParentWindow屬性。

此外,在現代VCL版本中,您可以在顯示VCL對話框時指定ParentWnd

+0

謝謝你的答案!這正是我正在尋找的,但我似乎太沉悶,不能正確使用它^^我在上面的問題中添加了一個編輯:新的vcl-Form被鎖定,沒有響應 – Julian 2014-09-03 14:36:10