透過以下的程式碼,可以在程式一執行時就決定是否要出現在底下的工作列,

也可以在執行期間,透過一個 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);

}


全站熱搜

Nelson 發表在 痞客邦 留言(0) 人氣()