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

C++ Builder 移除 MDI 子視窗標題列的技巧

     編輯:關於C++

移除 MDI 子視窗標題列

在 Windows 中,視窗樣式由 CreateWindowEx 函數決定。VCL 在建立視窗前會呼叫虛擬函數 CreateParams 取得視窗樣式參數 (TCreateParams),我們可透過覆寫此函數來調整樣式。

實作步驟

  1. 在子視窗表單 (如 TForm2) 的標頭檔中宣告覆寫函數:
    public:
        virtual void __fastcall CreateParams(Controls::TCreateParams & Params);
  2. 在實作檔中實作該函數,先呼叫基底類別取得標準屬性,再以 XOR 運算移除 WS_CAPTION 樣式:
    void __fastcall TForm2::CreateParams(Controls::TCreateParams & Params)
    {
        TCustomForm::CreateParams(Params); // 取得標準視窗屬性
        Params.Style ^= WS_CAPTION;        // 移除標題列樣式
    }

執行後,VCL 會將修改過的參數傳給 CreateWindowEx,建立出來的子視窗即不會有標題列。

原理說明

Params.Style ^= WS_CAPTION 利用異或運算切換位元:若原本有標題列則移除,若無則加上。這裡目的是移除,故確保呼叫基底類別後再執行此行即可。

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