全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1078
推到 Plurk!
推到 Facebook!

在MDI中,如何使一個ChildForm永遠保持在最底層?

尚未結案
rowater
一般會員


發表:11
回覆:19
積分:6
註冊:2004-08-30

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-05-05 00:07:08 IP:211.23.xxx.xxx 未訂閱
在MDI中 我想把一個ChildForm永遠設置在MDI的最下面,且是windowsstate是 wsMaximized的狀況 我發現在其他的子視窗開啟 或最小化 改變大小都會對其他的Child 產生影響 如果一直去設置windowsstate又會有閃動的問題 請問有方法嗎? 謝謝
mustapha.wang
資深會員


發表:89
回覆:409
積分:274
註冊:2002-03-13

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-05-05 17:26:08 IP:210.22.xxx.xxx 未訂閱
procedure TFormDesktop.WMWindowPosChanging(var Msg: TWMWINDOWPOSCHANGING); begin   Msg.WindowPos^.hwndInsertAfter:=HWND_BOTTOM; end;     久病成良医--多试 千人之诺诺,不如一士之谔谔--兼听
------
江上何人初见月,江月何年初照人
rowater
一般會員


發表:11
回覆:19
積分:6
註冊:2004-08-30

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-05-06 01:50:51 IP:211.23.xxx.xxx 未訂閱
謝謝您的回答 我想我的標題問題寫錯了 對不起, 我發現子視窗開啟 或最小化 改變大小都會對其他的Child 產生影響 如何克服此點 如果沒辦法要設置windowsstate (在ApplicationEvents1Message下控制)如何使Form在wsMaximized的情況下不閃動(如攔截訊息,暫停畫面更新,等待 MAX完畢,更新畫面),希望先進能提供一些程式碼供研究 ?謝謝
mustapha.wang
資深會員


發表:89
回覆:409
積分:274
註冊:2002-03-13

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-05-06 08:28:08 IP:210.22.xxx.xxx 未訂閱
procedure WMWindowPosChanging(var Msg: TWMWINDOWPOSCHANGING);message WM_WindowPosChanging;    procedure TFormDesktop.WMWindowPosChanging(var Msg: TWMWINDOWPOSCHANGING);
var
  R:TRect;
begin
  Msg.WindowPos^.hwndInsertAfter:=HWND_BOTTOM;
  if ParentWindow>0 then
  begin
    Windows.GetClientRect(ParentWindow,R);
    Msg.WindowPos^.x:=0;
    Msg.WindowPos^.y:=0;
    Msg.WindowPos^.cx:=R.Right-R.Left;
    Msg.WindowPos^.cy:=R.Bottom-R.Top;
  end;
end;
响应消息WM_WindowPosChanging,控制大小 久病成良医--多试 千人之诺诺,不如一士之谔谔--兼听
------
江上何人初见月,江月何年初照人
系統時間:2024-06-29 17:14:31
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!