透過以下的程式碼,可以在程式一執行時就決定是否要出現在底下的工作列,
也可以在執行期間,透過一個 CheckBox 動態決定它是否要出現在工作列。
也可以在執行期間,透過一個 CheckBox 動態決定它是否要出現在工作列。
/*
* 以下是在啟動時決定是否要出現在下方的工作列:
*/
void __fastcall TForm1::FormCreate(TObject *Sender)
{
// 在這之前先做一些初始化的動作,
// 像我就去讀取 ini 檔, 決定是否要顯示在 Taskbar,
// 然後把結果存在一個 bool 變數 IsInTaskbar
ShowWindow(Application->Handle, SW_HIDE);
if (IsInTaskbar)
{
SetWindowLong(Application->Handle, GWL_EXSTYLE,
GetWindowLong(Application->Handle, GWL_EXSTYLE) &
(~WS_EX_TOOLWINDOW | WS_EX_APPWINDOW));
}
else
{
SetWindowLong(Application->Handle, GWL_EXSTYLE,
GetWindowLong(Application->Handle, GWL_EXSTYLE) |
WS_EX_TOOLWINDOW & ~WS_EX_APPWINDOW);
}
ShowWindow(Application->Handle, SW_SHOW);
}
/*
* 以下是用一個 CheckBox 在 runtime 決定是否要出現在工作列:
*/
void __fastcall TForm1::chkIsInTaskBarClick(TObject *Sender)
{
ShowWindow(Application->Handle, SW_HIDE);
if (chkIsInTaskBar->Checked)
{
SetWindowLong(Application->Handle, GWL_EXSTYLE,
GetWindowLong(Application->Handle, GWL_EXSTYLE) &
(~WS_EX_TOOLWINDOW | WS_EX_APPWINDOW));
}
else
{
SetWindowLong(Application->Handle, GWL_EXSTYLE,
GetWindowLong(Application->Handle, GWL_EXSTYLE) |
WS_EX_TOOLWINDOW & ~WS_EX_APPWINDOW);
}
ShowWindow(Application->Handle, SW_SHOW);
}