我有一个主要用owl-libary编写的应用程序。

在那里,我想从主猫头鹰窗口中打开新的vcl-windows。
这很好用,尽管如果打开对话框窗口(即使使用ShowModal),并且我将焦点放在另一个应用程序上,则主窗口get会进入前景,但会被其后面的窗口阻塞。

我猜问题出在缺少父母的地方。

但是,我无法将owl的TWindow转换为vcl的TWinControl

是否有技巧将vcl的parent设置设置为猫头鹰的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时会错过什么吗?

编辑2:
我认为父级是TDecoratedMDIFrame(是MDI容器)可能是个问题,因此我的对话框被视为mdi-child而不是普通对话框...

最佳答案

TWinControl具有用于指定非VCL父窗口的ParentWindow属性。

另外,在现代VCL版本中,显示VCL对话框时可以指定ParentWnd

关于c++ - c + +:owlnext + vcl:新窗口缺少其父级,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25622704/

10-13 06:05