首页 园地图库文章列表留言下载
现在位置:首页 -> 社会百科 -> 学习资料
delphi中如何控制windows任务栏的显示
作者:佚名 来源:mmkey.com搜集 更新日期:2005-9-19 阅读次数
文字 〖 自动滚屏(右键暂停)

 
为了更有效地利用显示器的空间,多数程序员都有过这样的经验,即通过Windows任务栏属性对话框,在“任务栏选项”页中将任务栏设置为“自动隐藏”,并且为了在需要任务栏时操作方便,选择任务栏“总在最前”。完成上述设置后,当程序员编辑文档或编写代码时,任务栏会自动隐藏,增加了显示器的可利用空间;而当程序员需要操作任务栏时,只需将鼠标移动到任务栏所在位置的显示器边缘上,这时任务栏就会自动出现。但如果任务栏没有设置成“总在最前”,此时任务栏就不会自动弹出。 
要控制Windows任务栏的隐藏和显示,可以通过调用一组API函数来实现。这组API函数分别是: 
(1) FindWindow函数 
该函数通过指定的类名和窗口名来检索指定的高层窗口句柄,如果检索成功,则返回窗口句柄,否则返回空;另外,需注意改函数不能用于查找子窗口。函数如下: 
HWND FindWindow(LPCTSTR lpClassName, //类名指针 
LPCTSTR lpWindowName //窗口名指针 
); 
(2) ShowWindow函数 
该函数用于设置指定窗口的显示状态。函数如下: 
BOOL ShowWindow(HWND hWnd, //指定窗口的句柄 
Int nCmdShow //指定窗口的显示状态,可以设置为SW_HIDE,SW_SHOW等 
); 
(3) SetWindowPos函数 
该函数用于设置指定窗口的大小、显示位置和显示顺序等信息。函数如下: 
BOOL SetWindowPos( 
HWND hWnd, // 指定窗口的句柄 
HWND hWndInsertAfter, // 指定窗口的显示顺序,可以设为如下一组值:HWND_BOTTOM、HWND_NOTOPMOST、HWND_TOP、HWND_TOPMOST  
int X, // 指定窗口的横坐标位置 
int Y, // 指定窗口的纵坐标位置 
int cx, // 指定窗口的宽度 
int cy, // 指定窗口的长度 
UINT uFlags // 指定窗口的尺寸和位置标记,可以取一组值或这些值的组合 
); 
下面本文以一个具体的例子,详细介绍一下在Delphi 5.0中实现Windows任务栏显示和隐藏的步骤。 
1. 创建一个应用程序,在主窗体上增加二个TButton组件和一个TcheckBox组件。设置其中一个TButton组件的Caption属性为“隐藏Windows的任务栏”,设置另一个TButton组件的Caption属性为“显示Windows的任务栏”,设置TcheckBox组件的Caption属性为“总在最前”。 
2. 编辑TForm1.Button1Click(Sender: TObject) 
隐藏Windows的任务栏,代码如下: 
procedure TForm1.Button1Click(Sender: TObject); 
var 
wndHandle: THandle; //用于存储指定窗口的句柄 
wndClass: array[0..50] of Char; //用于存储类名 
begin 
strPCopy(@wndClass[0],  Shell_TrayWnd ); //获取任务栏类名 
wndHandle := FindWindow(@wndClass[0],nil); //获取任务栏窗口的句柄 
ShowWindow(wndHandle, SW_Hide); //隐藏Windows任务栏 
button2.Enabled := True; //设置“显示Windows任务栏”按钮变为可操作状态 
button1.Enabled := False; //设置“隐藏Windows任务栏”按钮变为不可操作状态 
end; 
3. 编辑TForm1.Button2Click(Sender: TObject) 
显示Windows的任务栏,并判断“总在最前”TcheckBox组件是否选中,如果选中,则任务栏总是显示在最前方,否则任务栏显示在最底层。代码如下: 
procedure TForm1.Button2Click(Sender: TObject); 
var 
wndHandle: THandle; 
wndClass: array[0..50] of Char; 
begin 
strPCopy(@wndClass[0],  Shell_TrayWnd ); 
wndHandle := FindWindow(@wndClass[0],nil); 
ShowWindow(wndHandle, SW_SHOW); //显示Windows的任务栏 
//判断“总在最前”复选框是否选中 
if CheckBox1.checked then //如果选中,则设置任务栏为最顶层窗口 
SetWindowPos(wndHandle, HWND_TOPMOST, r.top, r.left, r.bottom, r.right, SWP_NOMOVE) 
Else //否则,设置任务栏为最底层窗口 
SetWindowPos(wndHandle, HWND_BOTTOM, r.top, r.left, r.bottom, r.right, SWP_NOMOVE); 
//设置按钮的操作状态 
button2.Enabled := False; 
button1.Enabled := True; 
end; 
4. 打开Windows任务栏属性对话框,不选中“自动隐藏”和“总在最前”两个复选框,并确定后关闭该对话框。运行上述创建的应用程序,即可控制Windows任务栏的显示和隐藏。   

上篇文章: pop3信箱监视程序
下篇文章:七夕礼物
相关文章:
  • 世界上最神秘的十个古墓
  • 木棉花的春天分集剧情介绍
  • 《反串》剧情分集介绍6
  • 《反串》剧情分集介绍5
  • 《女儿,我该怎么爱你》分集剧情介绍8
  • 《女儿,我该怎么爱你》分集剧情介绍7
  • 《女儿,我该怎么爱你》分集剧情介绍6
  • 《女儿,我该怎么爱你》分集剧情介绍5
  • 《双面胶》分集剧情介绍12
  • 《双面胶》分集剧情介绍11
  • 《双面胶》分集剧情介绍10
  • 《双面胶》分集剧情介绍9
  • 《双面胶》分集剧情介绍8
  • 《双面胶》分集剧情介绍7
  • 《夜来风雨》剧情分集介绍10
  • 《夜来风雨》剧情分集介绍9
  • 《夜来风雨》剧情分集介绍8
  • 《夜来风雨》剧情分集介绍7
  • 《夜来风雨》剧情分集介绍6
  • 《舞台姐妹》剧情分集介绍6
  • 版权所有:文摘园地;本站资料均由站长收集,如果有侵权,请立即来信留言告诉我们,以免损害您的权益,谢谢!
    Copyright © 2004 文摘园地 http://wwww.mmkey.com All Rights Reserved Power by:HeadWind
    粤ICP备05098767号