冥界3大法王 发表于 2021-1-18 16:07

如何 解决 内嵌的窗口 没有焦点问题?


procedure TForm2.Button1Click(Sender: TObject);
var
h: HWnd;
p: array of char;
begin
h := GetWindow(Handle, GW_HWNDFIRST);
while h <> 0 do
begin
    GetClassName(h, p, Length(p));
    if p = Keyword3 then                  //如果窗口类名=.INI窗口标题对应的类名
    begin
      GetWindowText(h, p, Length(p));      //那就得到其窗口标题
   //showmessage(p);
      Clipboard.AsText := p;
    end;
    h := GetWindow(h, GW_HWNDNEXT);
end;

h := FindWindow(nil, PWideChar(Clipboard.AsText));    // 这里再把p分配给找窗口
if h <> 0 then
begin
    Winapi.Windows.SetParent(h, Self.Scite.Handle);
    Winapi.Windows.MoveWindow(h, 0, 0, Self.Scite.Width, Self.Scite.Height, True);
    SetWindowLong(h, GWL_STYLE, GetWindowLong(h, GWL_STYLE) and (not WS_CAPTION) and (not WS_BORDER) and (not WS_THICKFRAME));         //去除窗口标题栏!
end
else
    ShowMessage('程序未运行,请点【顶部齿轮图标】重新配置!');
end;

ying656 发表于 2021-1-18 18:45

应该是学习框架机制及原理,我也不懂这个,目前解决办法 找图
页: [1]
查看完整版本: 如何 解决 内嵌的窗口 没有焦点问题?