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

[推薦]做一個DreamWeaver風格的程式

 
axsoft
版主


發表:681
回覆:1056
積分:969
註冊:2002-03-13

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-08-06 11:45:40 IP:61.218.xxx.xxx 未訂閱

做一個DreamWeaver風格的程式

謝慧強
資料來源:http://www2.ccw.com.cn/tips/2k01/012002_03.asp ---- 用過DreamWeaver的人都會發現DreamWeaver將每一個編輯的文件顯示在任務欄上,並且用戶任意關閉一窗口而不影響其他窗口,好象每一個窗口間沒有關聯,沒有主窗口似的。但我們也能發現其實這些窗口間也有數據是共享的,如存盤的路徑。 ---- 經過研究我發現其實這些窗口其實是屬於同一程序的,並且實現方法也非常的簡單。下面我用Inprise公司的C Builder為大家舉一個簡單的例子。 ---- 首先我們創建一個普通的應用程序。在這個程序中包含兩個Form,其中Form1為主窗口,我們將Form2設為不由應用程序自動創建。 ---- 在Form1中加入一新的Public的屬性: ---- int FormCount; ---- 此屬性用於記錄系統建立的From2的實例的個數,在Form1的OnCreate事件中加入如下代碼: int i=GetWindowLong(this- >Handle,GWL_STYLE); TForm2 *F,*G; F=new TForm2(NULL); G=new TForm2(NULL); F- >ParentWindow=GetDesktopWindow(); F- >Caption="F"; G- >ParentWindow=GetDesktopWindow(); G- >Caption="G"; this- >FormCount=2; SetWindowLong(G- >Handle,GWL_STYLE,i); SetWindowLong(F- >Handle,GWL_STYLE,i); F- >Show(); G- >Show(); ---- 其中GetWindowLong,SetWindowLong為獲取/設置Window屬性的API函數,具體請看C Builder帶的Win32幫助。然後運行程序,我們就能發現程序在任務欄上顯示了屬於此程序的三個任務條。 ---- 接下來我們要做的事情有兩個: ---- 1、 隱藏Form1及Application ---- 2、 讓Form2的實例關閉應用程序 ---- 實現第一件事情的方法在網上很多地方都提到了,即修改WinMain函數下面是具體的代碼(粗斜體為加入的代碼): WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) { try { Application- >Initialize(); Application- >CreateForm( __classid(TForm1), &Form1); Application- >ShowMainForm=false; ShowWindow(Application- >Handle, SW_HIDE); Application- >Run(); } catch (Exception &exception) { Application- >ShowException(&exception); } return 0; } ---- 在這個地方要注意的是光用“Application->ShowMainForm=false;”是不能隱藏主Form(Form1)的,必須將Form1的Visibled屬性變為false。 ---- 實現第二件事情需要用到Application的Terminate方法(結束應用程序)。我們只要在TForm2的OnClose事件中簡單加入以下幾句程序: if (Form1- >FormCount>1) Form1- >FormCount--; else Application- >Terminate(); ---- 運行程序,你就能發現程序在有任務攔上有兩個提示,窗口F及窗口G,而且這兩個窗口看起來就象獨立的應用程序。 ---- 至此,一個DreamWeaver風格的程序就做完了,是不是很簡單呢。 ________________________________________________________________________ 時間就是金錢---[ 發問前請先找找舊文章]
系統時間:2024-04-24 16:58:16
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!