2009-06-03 59 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;