在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
以下两个代码心得是在编写陆岛桌面工具时自己的一些心得。 1. (2008-5-1) 有几种方法可以禁止主窗口在不任务栏显示.
1) 通过SetWindowLong设置主窗口的属性:
SetWindowLong(Handle, GWL_EXSTYLE, WS_EX_TOOLWINDOW); 2) 设置 窗口的 ParentWindow 为桌面窗口的句柄 var AHandle: THandle; begin SetWindowLong(Handle, GWL_EXSTYLE, WS_EX_TOOLWINDOW); AHandle := FindWindow('ProgMan', nil); if AHandle<>0 then Self.ParentWindow := AHandle; end; 3) 在 Delphi 2007 时,可以如下设置 Application.MainFormOnTaskbar := True; Application.ShowMainForm := False; 2. (2008-5-1) 模式窗口焦点的解决。当窗口弹出一个模式窗口时,切换到其他窗口后,再切换回来,模式窗口就不能显示到最顶端了。这个问题可以根据判断 Application.Enabled 属性来解决。因为当 Application 有一个模式窗口时. Applicaton.Enabled 值就会为 False。因此,就可以在窗口的 WM_NCActivate 消息里。加入以下代码。
procedure TMyForm.WMNCActivate(var Message: TWMNCActivate);
begin inherited; if Message.Active and not (fsModal in FormState) and not IsWindowEnabled(Application.Handle) then Windows.SetForegroundWindow(Application.Handle); end; |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论