miguo
一般會員
![](./myimg/board/mystar_empty.gif)
![](images/icon_photo_none.gif) 發表:5 回覆:3 積分:1 註冊:2004-02-05
發送簡訊給我
|
我是剛開始嘗試BCB的新手,請多包涵 我有兩個表單,第一個表單讓使用者登入,第二個表單等待接收網路訊息
我希望使用者按最小化時桌面是乾淨的,只剩系統列的小圖示,當收到訊息時視窗才跑出來(有沒有那位大大能提供範例程式供我參考 ![]() ) 我放了一個
|
m8815010
版主
![](./myimg/board/mystar.gif) ![](./myimg/board/mystar.gif) ![](./myimg/board/mystar.gif) ![](./myimg/board/mystar.gif)
![](images/icon_photo_none.gif) 發表:99 回覆:372 積分:289 註冊:2003-11-13
發送簡訊給我
|
引言:
我是剛開始嘗試BCB的新手,請多包涵 我有兩個表單,第一個表單讓使用者登入,第二個表單等待接收網路訊息
我希望使用者按最小化時桌面是乾淨的,只剩系統列的小圖示,當收到訊息時視窗才跑出來(有沒有那位大大能提供範例程式供我參考 ) 我放了一個>>< face="Verdana, Arial, Helvetica"> miguo你好< >: 不太確定抓準你的意思< >! 可能一開始你是有一個MainForm(可能是使用者登入用),然後你可能有新增另一個Form(做收訊息用),那新增的方式可能:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Form2=new TForm2(Application);
Form2->Show();
}
嗯,那如果你是用BCB的TrayIcon物件的話,並且你按的是MainForm的最小化這顆鍵,那麼不管其它還有幾個新增的Form,都會一起被縮到icon內。因為MainForm的這顆縮小鍵按下,將代表整個Application要被minizine,所以所有的Form都將被minizine至工具列成為一個item,之後就是TrayIcon物件的功能,將工具列的這個item縮到右下角。 但是如果你按的是其它非MainForm的Form的最下化鍵時,則只有這個Form本身會被最小化,而最小化本來就是做縮到左下角這樣的動作而已,所以一切應都還在定義下正常運作。 那我想miguo你是要按一個非MainForm的最小鍵,而全部的Form也都能縮到右小角成icon吧! 試試這段 ,在>(假設> < class="code"> void __fastcall TForm1::FormActivate(TObject *Sender)
{
if (Form2->WindowState==wsMinimized) {
SendMessage(Handle,WM_SYSCOMMAND,SC_MINIMIZE,0);
}
} 其實這是迂迴的作法,比較正統,直覺的作法(我覺得啦)目前我卡到了,所以不介意的話先試這樣吧 !
|
miguo
一般會員
![](./myimg/board/mystar_empty.gif)
![](images/icon_photo_none.gif) 發表:5 回覆:3 積分:1 註冊:2004-02-05
發送簡訊給我
|
感謝m8815010大大:
您回答的正是我的意思,依據您的方法真的可讓全部的Form不留在桌面上。 可是按兩下icon,回來的卻是登入後不再用到的登入視窗(MainForm),
有沒有辦法讓回來的視窗是工作中的Form而非MainForm? 或者能達到相同目的:
登入視窗確定使用者後就不用了,工作視窗平常縮到右小角成icon,收到訊息時跳出來供使用者在上面作業以達到即時處理。
這樣的程式一般會怎麼寫呢? 不好意思,容我多問一些再結案,真多謝!
|
m8815010
版主
![](./myimg/board/mystar.gif) ![](./myimg/board/mystar.gif) ![](./myimg/board/mystar.gif) ![](./myimg/board/mystar.gif)
![](images/icon_photo_none.gif) 發表:99 回覆:372 積分:289 註冊:2003-11-13
發送簡訊給我
|
引言:
感謝m8815010大大:
您回答的正是我的意思,依據您的方法真的可讓全部的Form不留在桌面上。 可是按兩下icon,回來的卻是登入後不再用到的登入視窗(MainForm),
有沒有辦法讓回來的視窗是工作中的Form而非MainForm? 或者能達到相同目的:
登入視窗確定使用者後就不用了,工作視窗平常縮到右小角成icon,收到訊息時跳出來供使用者在上面作業以達到即時處理。
這樣的程式一般會怎麼寫呢? 不好意思,容我多問一些再結案,真多謝!
miguo兄你好 : 承之前的意義,在右下角的>首先>
< class="code"> void __fastcall TForm1::FormCreate(TObject *Sender)
{
Form2=new TForm2(Application);
Form2->Show();
Application->ShowMainForm=false;
} 在Longin確定後,再關掉登入視窗,show出MainForm
在副Form中用下列程式碼實現
DestroyWindow(Handle);
Form1->Show();
嗯,可能不滿足你的需求,再說吧 !
|
miguo
一般會員
![](./myimg/board/mystar_empty.gif)
![](images/icon_photo_none.gif) 發表:5 回覆:3 積分:1 註冊:2004-02-05
發送簡訊給我
|
m8815010大大您好:
您真是太厲害了,我至少翻遍了3本 C++ Builder 6 的中文書,就是做不到這樣的效果,沒想到您短短幾行程式碼完全滿足我的需求,真是太感謝您了!
|
m8815010
版主
![](./myimg/board/mystar.gif) ![](./myimg/board/mystar.gif) ![](./myimg/board/mystar.gif) ![](./myimg/board/mystar.gif)
![](images/icon_photo_none.gif) 發表:99 回覆:372 積分:289 註冊:2003-11-13
發送簡訊給我
|
引言:
m8815010大大您好:
您真是太厲害了,我至少翻遍了3本 C Builder 6 的中文書,就是做不到這樣的效果,沒想到您短短幾行程式碼完全滿足我的需求,真是太感謝您了!
>>< face="Verdana, Arial, Helvetica"> 嗯,miguo兄太客氣了< >!我只是發表一下想法而已,其實也沒寫到什麼高深的技巧啦< >!
|