如何在MDI中獲取其子視窗的寬、高大小值? |
尚未結案
|
clio4177
一般會員 發表:28 回覆:21 積分:9 註冊:2002-07-17 發送簡訊給我 |
各位大大:
請問在MDI中如何獲取其子視窗的大小或者最大化時的範圍值?因為我寫了子視窗寬、高範圍值的抓取程式,但是只要滑鼠一拖拉子視窗時就會出現錯誤訊息。我的程式碼如下:
void __fastcall TPCStatus::FormResize(TObject *Sender)
{
Memo1->Lines->Add(PCStatus->Width);
Memo1->Lines->Add(PCStatus->Height);
}
出現的錯誤訊息如下:
"Access violation at address 000402F43 in module 'EDDM.exe'. Read of address 00000048" 請問該如何修正上列程式,才能正確獲得MDI子視窗的寬、高大小值?
|
turboted
版主 發表:95 回覆:754 積分:452 註冊:2002-07-23 發送簡訊給我 |
|
clio4177
一般會員 發表:28 回覆:21 積分:9 註冊:2002-07-17 發送簡訊給我 |
|
turboted
版主 發表:95 回覆:754 積分:452 註冊:2002-07-23 發送簡訊給我 |
|
dllee
站務副站長 發表:321 回覆:2519 積分:1711 註冊:2002-04-15 發送簡訊給我 |
我剛試了一下,不會有問題呀!我狂拖拉都沒事
< class="code">
void __fastcall TMDIChild::FormResize(TObject *Sender)
{
Memo1->Lines->Add(this->Width);
Memo1->Lines->Add(this->Height);
}
由 BCB New 一個 MDI 的 Application 在 MDIChild 的 FormResize 中加上上述的 code。
clio4177 您的 code 有問題會發生 Exception 的原因是 PCStatus 這個物件只有在一開始由產生時第一個表單有作用,之後 new 出來的 MDI Child 指標一定不會是 PCStatus,所以你一存取他鐵掛!
對於所有表單,只要您在使用時不只一份,一定要用 this ,不要用 BCB 制式的指標變數,如 Form1,Form2 之類的。 沒空更新的網頁...
http://dllee.ktop.com.tw C及指標教學,計算機概論,資訊管理導論... http://dllee.adsldns.org 介紹Shells,LiteStep,GeoShell....
------
http://www.ViewMove.com |
clio4177
一般會員 發表:28 回覆:21 積分:9 註冊:2002-07-17 發送簡訊給我 |
|
turboted
版主 發表:95 回覆:754 積分:452 註冊:2002-07-23 發送簡訊給我 |
|
lcsboy
版主 發表:87 回覆:622 積分:394 註冊:2002-06-18 發送簡訊給我 |
想要任何時刻得知MDI目前的任何屬性嗎? 如寬.高, 請參考以下方式 TMDIChild *MDI;
......
MDI=dynamic_cast (ActiveMDIChild); // 取得目前active的MDI視窗指標
ShowMessage(MDI->Height); // 秀出active MDI視窗的Caption
......
MDI=MDIChildren[0]; // 取得很多個MDI視窗裡的第一個MDI視窗指標
ShowMessage(MDI->Height);
......
MDI=MDIChildren[MDIChildCount-1]; //取得很多個MDI視窗裡的最後一個MDI視窗指標
ShowMessage(MDI->Height);
...... PS:MDIChildren陣列裡的排列順序不一定就是你開啟MDI的順序 如何取得 > 以上的解法不知適用否 發表人 -
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |