嵌入式文档中的标题栏无法响应

我想以我的程序的形式嵌入一个单词应用程序。 我正在使用下面的代码:

procedure TAMainForm.Button1Click(Sender: TObject);
var
  WordApp: Variant;
  WordHandle: THandle;
  TempTitle: string;
begin
  WordApp := CreateOleObject('Word.Application');
  TempTitle := 'Temp - ' + IntToStr(Random(1000000));
  WordApp.Caption := TempTitle;
  WordHandle := FindWindow(nil, PChar(TempTitle));
  WordApp.Visible := True;
  Windows.SetParent(WordHandle, Handle);
  SetWindowPos(WordHandle, 0, Left+20, Top+50, 700, 500, SWP_ASYNCWINDOWPOS);
end;

它将词语放入我的表格中,它似乎可以正常工作。 然而,应用程序这个词的标题栏是全黑的,并且不响应鼠标点击。 我的代码有什么问题?


有一个跨窗口的父母与子女之间的窗口关系在技术上可能是合法的,但这是非常难以管理的,并且需要两个过程都意识到这种情况。 Raymond Chen在他的博客文章中详细解释了跨进程父/子或拥有者/拥有窗口关系是否合法? 这种跨进程关系可能是您面临的问题的原因。

如果您试图实现您的表单停留在Word之上,则可以基于Application.WindowActivate事件实施解决方法。 无论何时激活Word窗口,您都可以将自己的窗体带到顶端,例如使用SetWindowPos

链接地址: http://www.djcxy.com/p/55931.html

上一篇: Title bar in embedded word document not responsive

下一篇: Late binding in C# to Word Control in XAML/Store app