益友软件工作室

加密金刚锁相关技术 → C++Builder类技术文章 → 不让应用程序在任务栏上显示的方法

不让应用程序在任务栏上显示的方法

文章作者:轶名
 

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_ID (-12) //为窗口设置一个新的识别号
#define GWL_STYLE (-16) //设置新窗口类型
#define GWL_EXSTYLE (-20) //设置新窗口扩展类型
#define GWL_USERDATA (-21) //为窗口设置一个相联系的32位值,每一个窗口都有一个32位值,应用程序产生这个窗口时要利用这个值

如果hWnd参数为对话框,nIndex还可以取如下三个值:
DWL_DLGPROC //为对话框过程设置新地址
DWL_MSGRESULT //为对话框设置返回值
DWL_USER //为应用程序设置新的额外信息

这样,要使应用程序不显示在任务栏上,则在窗口的构造函数中写下面一句就可以了:
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
SetWindowLong(Application->Handle,GWL_EXSTYLE,WS_EX_TOOLWINDOW);
}
//---------------------------------------------------------------------------
 
 

特别申明

本栏目的文章都是本人从网上搜集而来,仅供大家学习研究之用,请不要用于商业目的!其中署名“佚名”的,意思是作者不详。如果某些文章未署你的名字,请来信告知,我会补上的。如果你认为某些文章侵犯了你的正当权宜,也请来信,我会将它删除。