以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 C/C++编程思想 』  (http://bbs.xml.org.cn/list.asp?boardid=61)
----  BCB不让应用程序显示在任务栏上的方法  (http://bbs.xml.org.cn/dispbbs.asp?boardid=61&rootid=&id=68669)


--  作者:卷积内核
--  发布时间:10/24/2008 8:47:00 AM

--  BCB不让应用程序显示在任务栏上的方法
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);
}
/////////////////////////////////////////////////////////////////////////////////////////////
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
2,783.203ms