MessageBox問題 |
答題得分者是:RaynorPao
|
kenbcb
中階會員 發表:171 回覆:129 積分:60 註冊:2003-07-15 發送簡訊給我 |
|
RaynorPao
版主 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
引言: 請問各位: 我有二form, 分別設normal 和 onstaytop, 如何讓訊息在最上面,因為我訊息都在下面,以及如何判斷同一訊息己經出現了? MessageBeep(MB_ICONINFORMATION); MessageBox(NULL,Msg_Import_OK,"Information",MB_ICONINFORMATION); kenbcb 你好: (1)因為你的 Form 已經設定為 fsStayOnTop,所以 MessageBox 的第一個參數 要設定成 Form->Handle 才會讓訊息顯示在上面,例如: MessageBox(this->Handle, "test", "Information", MB_ICONINFORMATION); 或者是醬子寫,應該更有效 MessageBox(Application->Handle, "test", "Information", MB_ICONINFORMATION); (2)一個比較簡單的方法,可以利用一個全域變數,就可以知道同樣一個訊息是 否已經被顯示,例如: (a)假設你的專案名稱為 Project1 原始碼在 Project1.cpp (b)假設你的 Form1 原始碼分別在 Unit1.h 及 Unit1.cpp (c)假設你的 Form2 原始碼分別在 Unit2.h 及 Unit2.cpp (d)先在 Project1.cpp 上面宣告一個 bool 型態的全域變數,例如: bool gbMsg1=false; (e)然後在 Unit1.cpp 上面加入以下這一行程式碼 extern bool gbMsg1; (f)同樣在 Unit2.cpp 上面加入以下這一行程式碼 extern bool gbMsg1; (g)這樣這個全域變數 gbMsg1 就可以同時被 Form1, Form2 中的程式碼存取 (h)所以你在 Form1 或 Form2 要建立 MessageBox 的時候,就可以先判斷這 個全域變數的值,就可以知道同樣的訊息是否事先已經存在!例如: if(!gbMsg1) { gbMsg1=true; MessageBox(this->Handle, "test", "Information", MB_ICONINFORMATION); gbMsg1=false; } (3)請再依照自己的需求,自行修改 > < src="http://delphi.ktop.com.tw/loadfile.php?TOPICID=10003806&CC=223734"> -- Enjoy Researching & Developing -- 發表人 - RaynorPao 於 2004/08/02 14:17:57
------
-- 若您已經得到滿意的答覆,請適時結案!! -- -- 欲知前世因,今生受者是;欲知來世果,今生做者是 -- -- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 -- |
kenbcb
中階會員 發表:171 回覆:129 積分:60 註冊:2003-07-15 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |