繁体   English   中英

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

[英]Title bar in embedded word document not responsive

我想将word应用程序嵌入程序形式。 我正在使用以下代码:

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;

它可以将单词正确地输入我的表单中,并且看起来还可以。 但是,单词应用程序的标题栏全为黑色,并且不响应鼠标单击。 我的代码有什么问题?

从技术上讲,具有Windows的跨进程父子关系可能是合法的,但管理起来非常困难,并且需要涉及的两个进程都注意这种情况。 Raymond Chen在其博客文章中对此进行了详细解释, 拥有跨进程的父/子或所有者/拥有的窗口关系是否合法? 这种跨进程的关系很可能是您所面临问题的原因。

如果您试图使您的窗体停留在Word之上,则可以基于Application.WindowActivate事件实现一种变通方法。 每当激活Word窗口时,您都可以将自己的表单置于顶部,例如使用SetWindowPos

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM