如何做出像螢幕保護程式一般鎖住螢幕 |
|
Akqj1098
一般會員 發表:14 回覆:60 積分:14 註冊:2002-05-17 發送簡訊給我 |
|
kunying
一般會員 發表:17 回覆:28 積分:19 註冊:2002-03-14 發送簡訊給我 |
我也是初學delphi,所以只能對我有看到的部份給回應 。螢幕保護程式 (陳寬達的深度歷險 第七章)
放大、全螢幕、黑底、無邊框且將滑鼠隱藏
BorderStyle -> bsNone
Color -> clBlack
WindowState -> wsMaximized
................ 很多你去找出來看,寫的很清楚 。把 Form 控制成不能放大/縮小/移動/關閉
來源:Delphi 學習筆記之Windows API http://bbs.ee.ntu.edu.tw/boards/Delphi/5/4/3.html 我想把 Form 控制成不能放大/縮小/移動/關閉 的方式運作可是用
Delphi 的話呢,一直沒辦法作到不能關閉(把 systemmenu 拿掉會出
問題)也沒辦法作到不能移動,user 常會把我的畫面拉著到處跑..再
跟我說不能輸入,看不見....
請各位幫我想想辦法吧...:)
[INLINE]
您可以覆寫 CreateParams() 這個 TWinControl 的虛擬程序, 改變
form的wc.Style, 將 WS_SYSMENU 這個旗標解除, 這樣, 就不會有
左上角的SystemMenuBox 了. 至於不能移動.縮小/放大, 可以自已攔下 WM_NCHITTEST, 然後一概
回應滑鼠點在視窗的 Client 區域, 相信這個視窗就呆呆的不會動了.
詳情可以查一下 Win32API Help 的 CreateWindow() 與 WM_NCHITTEST
的說明. 信末是我試你問題時作的程式, 請參考看看; 另外, 視窗世界已經開
始其傳統,造出這樣一個視窗, 實在不能算高明, 所以, 最好還是能多
與使用者溝通.
unit Unit1; interface uses
Windows, Messages, SysUtils, Classes, Graphics, Controls,
Forms, Dialogs, StdCtrls; type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
procedure WMNCHitTest(var Msg: TMessage); message WM_NCHITTEST;
protected
procedure CreateParams(var Params: TCreateParams); override;
public
{ Public declarations }
end; var
Form1: TForm1; implementation {$R *.DFM} procedure TForm1.CreateParams(var Params: TCreateParams);
begin
inherited CreateParams(Params);
with Params do
Style := Style xor WS_SYSMENU; // 去除 SystemMenuBox
// 如果要將視窗極大化, 請參考以下這行
//Style := Style xor WS_SYSMENU or WS_MAXIMIZE;
end; procedure TForm1.Button1Click(Sender: TObject);
begin
Close; // 不可少, 因為已經使用者已經沒有其他方法關閉此視窗了
end; procedure TForm1.WMNCHitTest(var Msg: TMessage);
begin
inherited;
// 這樣, 放大/縮小/移動都不可能了...
Msg.Result := HTCLIENT;
end; end.
------------------------------------------ 就這樣,希望對你有幫助。 ________________________
「有時候你以為天要塌下來了,其實是因為你站歪了!」
------
________________________ 「有時候你以為天要塌下來了,其實是因為你站歪了!」 |
WWW
一般會員 發表:0 回覆:1 積分:0 註冊:2002-11-13 發送簡訊給我 |
|
jackkcg
站務副站長 發表:891 回覆:1050 積分:848 註冊:2002-03-23 發送簡訊給我 |
參考參考
【Delphi】【問題】怎樣使程序啟動後能句充滿整個屏幕,且下面的狀態欄也年看不見?
http://delphi.ktop.com.tw/topic.php?TOPIC_ID=22870
------
********************************************************** 哈哈&兵燹 最會的2大絕招 這個不會與那個也不會 哈哈哈 粉好 Delphi K.Top的K.Top分兩個字解釋Top代表尖端的意思,希望本討論區能提供Delphi的尖端新知 K.表Knowlege 知識,就是本站的標語:Open our mind |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |