請問在MDI模式下,如何將子視窗的最大化最小化功能隱藏或失效,只留下關閉功能!? |
尚未結案
|
chaichiya
一般會員 發表:4 回覆:5 積分:1 註冊:2003-09-17 發送簡訊給我 |
參考之前的文章,如下實作: void __fastcall TWND_PP::CreateParams( Controls::TCreateParams &Params ){
TForm::CreateParams( Params );
Params.Style = WS_CHILD;
}/*CreateParams*/ 並將 BorderStyle = bsNone; 結果會是等同於將BorderIcon的biSystemMenu設為true,可否只留下關閉功能,而將最小、最大化的功能Disable掉呢? 感恩~~
|
jest0024
高階會員 發表:11 回覆:310 積分:224 註冊:2002-11-24 發送簡訊給我 |
引言: 參考之前的文章,如下實作: void __fastcall TWND_PP::CreateParams( Controls::TCreateParams &Params ){ TForm::CreateParams( Params ); Params.Style = WS_CHILD; }/*CreateParams*/ 並將 BorderStyle = bsNone; 結果會是等同於將BorderIcon的biSystemMenu設為true,可否只留下關閉功能,而將最小、最大化的功能Disable掉呢? 感恩~~ 1. BorderIcons:=[biSystemMenu]; 2. procedure TForm2.CreateParams(var Params: TCreateParams); begin Inherited CreateParams(Params); with Params do begin Style := Style and not(WS_MINIMIZEBOX or WS_MAXIMIZEBOX); end; end;發表人 - jest0024 於 2005/06/01 10:43:08 |
chaichiya
一般會員 發表:4 回覆:5 積分:1 註冊:2003-09-17 發送簡訊給我 |
1.
BorderIcons:=[biSystemMenu];
2.
procedure TForm2.CreateParams(var Params: TCreateParams);
begin
Inherited CreateParams(Params);
with Params do begin
Style := Style and not(WS_MINIMIZEBOX or WS_MAXIMIZEBOX);
end;
end; ---------------------------------------------------------------------
謝謝 jest0024 的回答!
我用了你的方式,結果會是和我原來的方式是一樣的~~ 只是,我不知在delphi中和BCC中是不是一樣的結果!(抱歉,我沒有delphi的環境) 這個方式的結果我大概說明一下:
由於將 BorderIcons:=[biSystemMenu];
所以子視窗上的三個功能,包括最大化,最小化以及關閉鈕都會出現!
經過上述的程式處理之後,其中的最小化功能確定被禁止(但是還看得見,不過這樣可以接受!),而關閉的功能也還能運作正常! 最傷腦筋的,是最大化的功能依然存在,也就是說在子視窗的
WindowState 為 wsMaximized 的條件下,按下最大化鈕,子視窗會縮小,此時我們才會看到最大化、最小化的功能鈕都不見了。然後,就再也沒有按鈕可以把它最大化了......。 不知這個是不是無法改變的行為模式!?如果真是如此,只好放棄,繞個彎,把systemmuen給關了,然後在子視窗中加一個按鈕來關閉自己! 想聽聽大家的想法!
謝謝!
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |