首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C++ >> 關於C++

C++ Builder 打造 Dreamweaver 風格多視窗應用程式

     編輯:關於C++

讓每個子視窗在工作列獨立顯示

Dreamweaver 每個編輯視窗皆在工作列顯示獨立按鈕,彷彿各自為獨立程式,實則共享同一進程資料。C++ Builder 可透過設定視窗父視窗為桌面並修改 WinMain 隱藏主視窗來實現。

核心實作步驟

  1. 建立一般專案,Form1 為主視窗,Form2 設為不自動建立。
  2. Form1 加入 public: int FormCount; 記錄子視窗數量。
  3. Form1 的 OnCreate 動態建立兩個 Form2 實例,並設定 ParentWindow = GetDesktopWindow():
int i = GetWindowLong(this->Handle, GWL_STYLE);
TForm2 *F = new TForm2(NULL);
TForm2 *G = new TForm2(NULL);
F->ParentWindow = GetDesktopWindow(); F->Caption = "F";
G->ParentWindow = GetDesktopWindow(); G->Caption = "G";
this->FormCount = 2;
SetWindowLong(F->Handle, GWL_STYLE, i);
SetWindowLong(G->Handle, GWL_STYLE, i);
F->Show(); G->Show();
  1. 修改 WinMain 隱藏主視窗與應用程式工作列圖示:
Application->ShowMainForm = false;
ShowWindow(Application->Handle, SW_HIDE);

注意:需同時設定 Form1->Visible = false 才能完整隱藏主視窗。

  1. Form2 的 OnClose 判斷計數決定是否終結應用程式:
if (Form1->FormCount > 1)
    Form1->FormCount--;
else
    Application->Terminate();

執行效果

工作列出現兩個獨立按鈕 (F、G),關閉任一不影響另一,關閉最後一個才結束程式。視窗間可透過 Form1 共享資料 (如儲存路徑)。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved