在 Windows 中,視窗樣式由 CreateWindowEx 函數決定。VCL 在建立視窗前會呼叫虛擬函數 CreateParams 取得視窗樣式參數 (TCreateParams),我們可透過覆寫此函數來調整樣式。
TForm2) 的標頭檔中宣告覆寫函數:
public:
virtual void __fastcall CreateParams(Controls::TCreateParams & Params);
WS_CAPTION 樣式:
void __fastcall TForm2::CreateParams(Controls::TCreateParams & Params)
{
TCustomForm::CreateParams(Params); // 取得標準視窗屬性
Params.Style ^= WS_CAPTION; // 移除標題列樣式
}
執行後,VCL 會將修改過的參數傳給 CreateWindowEx,建立出來的子視窗即不會有標題列。
Params.Style ^= WS_CAPTION 利用異或運算切換位元:若原本有標題列則移除,若無則加上。這裡目的是移除,故確保呼叫基底類別後再執行此行即可。