不希望表单最小化

发布于 2024-07-22 04:23:15 字数 283 浏览 7 评论 0原文

是否可以禁止在 Delphi 中最小化表单\应用程序?

我找到了以下代码:

procedure TForm1.WMShowWindow(var Msg: TWMShowWindow);
begin
  if not Msg.Show then
    Msg.Result := 0
  else
    inherited;
end;

但是如果我按 Windows 键 + M 或 WindowsKey + D,那么它仍然会最小化。 有办法防止这种情况吗?

Is it possible to disallow minimizing of a form\application in Delphi ?

I found the following code:

procedure TForm1.WMShowWindow(var Msg: TWMShowWindow);
begin
  if not Msg.Show then
    Msg.Result := 0
  else
    inherited;
end;

But if I press windows key + M or WindowsKey + D, then it still gets minimized.
Is there a way to prevent this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

枯寂 2024-07-29 04:23:15

将 BorderIcons.bsMinimized 设置为 false(将其从集合中删除)适用于 WindowsKey + M,但不会停止 WindowsKey + D。我认为这是有道理的。 两者之间的区别在于,第一个是要求所有窗口最小化,而第二个是用户明确请求查看其桌面。 覆盖后者可能会惹恼用户(类似于强迫自己集中注意力)。

Setting BorderIcons.bsMinimized to false (removing it from the set) will work for WindowsKey + M but will not stop WindowsKey + D. I think that makes sense. The difference between the two is the first is asking all windows to minimize while the second is an explicit request by the user to see their desktop. Overriding the latter would probably annoy the user (similiar to forcing yourself into focus).

云柯 2024-07-29 04:23:15

或者您可以放置​​一个键盘挂钩并抓住 winkey+d 或 winkey+m 并保持表单最大化。

or you can place a keyboard hook and catch winkey+d or winkey+m and keep your form maxmized.

樱&纷飞 2024-07-29 04:23:15

只需将这样的代码放入表单 onShow 事件中:

  WindowState:=wsMaximized;

并将以下代码放入 OnCanResize 中:

  if (newwidth<width) and (newheight<height) then
    Resize:=false;

Just put to the form onShow event such code:

  WindowState:=wsMaximized;

And to the OnCanResize this:

  if (newwidth<width) and (newheight<height) then
    Resize:=false;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文