Windows規定,如果一個窗口是浮動的工具類型窗口時,它就不在任務欄上顯示了。要爲窗口設置這個屬性,可以利用API函數SetWindowLong。該函數用來改變窗口的一些特徵它的定義如下:
////////////////////////////////////////////////////////////////////////////////////////
LONG SetWindowLong(
HWND,hWnd ////窗口句柄
int nIndex, ////值的偏移設置量
LONG dwNewLong ////新值
);
/////////////////////////////////////////////////////////////////////////////////////////////
參數nIndex的取值見下表:
#define GWL_WNDPROC (-4) ////爲窗口過程設置新地址
#define GWL_HINSTANCE (-6) ////設置一個新的應用程序實例句柄
#define GWL_HWNDPARENT (-8) ////
#define GWL_STYLE (-16) ////設置新窗口類型
#define GWL_EXSTYLE (-20) ////設置新窗口擴展類型
#define GWL_USERDATA (-21) ////爲窗口設置一個相聯繫的32位值,每一個窗口都有一個32位值,應用程序產生這個窗口時要利用這個值
#define GWL_ID (-12)////爲窗口設置一個新的識別號
如果hWnd參數爲對話框,nIndex還可以取如下三個值:
DWL_DLGPROC ////爲對話框過程設置新地址
DWL_MSGRESULT ////爲對話框設置返回值
DWL_USER ////爲應用程序設置新的額外信息
//////////////////////////////////////////////////////////////////////////////////////////////
這樣,要使應用程序不顯示在任務欄上,則在窗口的構造函數中寫下面一句就可以了:
/////////////////////////////////////////////////////////////////////////////////////////////
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
SetWindowLong(Application->Handle,GWL_EXSTYLE,WS_EX_TOOLWINDOW);
}
/////////////////////////////////////////////////////////////////////////////////////////////