2009-06-03 57 views
1

是否有可能在Delphi中不允许最小化窗体\应用程序?不希望窗体最小化

我发现下面的代码:

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

但如果我按下Windows键+ M或WindowsKey的+ d,那么它仍然被最小化。 有没有办法来防止这种情况?

+0

在我的情况下,用户希望它留最大化 – Anna 2009-06-03 11:10:32

回答

10

将BorderIcons.bsMinimized设置为false(将其从设置中移除)将适用于WindowsKey + M,但不会停止WindowsKey + D.我认为这很有道理。两者之间的区别在于第一个要求所有窗口最小化,而第二个是用户明确请求查看他们的桌面。重写后者可能会使用户恼火(类似于强迫自己成为焦点)。

+0

感谢瑞安您的输入 – Anna 2009-06-03 16:01:14

2

或者您可以放置​​一个键盘钩子,并捕获winkey + d或winkey + m并保持您的表单最大化。

+1

并烦扰您的用户bejeezus。 ..然而,+1是一个正确的解决方案。 – 2009-06-03 09:33:47

0

只要把窗体昂秀事件这样的代码:

WindowState:=wsMaximized; 

而到了OnCanResize这样的:

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