199上位机VC MFC隐藏显示桌面文件图标
199上位机VC MFC隐藏显示桌面文件图标 功能展示 有时在进行多媒体演示时会隐藏桌面上的全部文件,我们当前例程实现桌面上全部的文件隐藏与显示,点击隐藏桌面文件图标,将隐藏全部文件,显示桌面文件图标,全部还原显示,,效果如图; 要点提示 桌面的窗口名称是Program Manager;桌面窗口的类名是Progman;所以可以通过这两变量调用函数FindWindow()获得桌面窗口的句柄,再使用函数ShowWindow()进行桌面窗口的显示与隐藏; FindWindow ()函数原型HWND FindWindow(LPCSTRlpClassName,LPCSTR lpWindowName); 参数表解译:lpClassName 指向一个以NULL字符结尾的、用来指定类名的字符串或一个可以确定类名字符串的原子。如果这个参数是一个原子,那么它必须是一个在调用此函数前已经通过GlobalAddAtom函数创建好的全局原子。这个原子(一个16bit的值),必须被放置在lpClassName的低位字节中,lpClassName的高位字节置零。 如果该参数为null时,将会寻找任何与lpWindowName参数匹配的窗口。 lpWindowName 指向一个以NULL字符结尾的、用来指定窗口名(即窗口标题)的字符串。如果此参数为NULL,则匹配所有窗口名。 ShowWindow()函数原型:BOOLShowWindow(HWND hWnd, int nCmdShow); 参数编辑 hWnd:指窗口句柄。 nCmdShow:指定窗口如何显示。如果发送应用程序的程序提供了STARTUPINFO结构,则应用程序第一次调用ShowWindow时该参数被忽略。否则,在第一次调用ShowWindow函数时,该值应为在函数WinMain中nCmdShow参数。在随后的调用中,该参数可以为下列值之一: SW_FORCEMINIMIZE:在WindowNT5.0中最小化窗口,即使拥有窗口的线程被挂起也会最小化。在从 其他线程最小化窗口时才使用这个参数。 SW_HIDE:隐藏窗口并激活其他窗口。 SW_MAXIMIZE:最大化指定的窗口。 SW_MINIMIZE:最小化指定的窗口并且激活在Z序中的下一个顶层窗口。 SW_RESTORE:激活并显示窗口。如果窗口最小化或最大化,则系统将窗口恢复到原来的尺寸和位置。在恢复最小化窗口时,应用程序应该指定这个标志。 SW_SHOW:在窗口原来的位置以原来的尺寸激活和显示窗口。 SW_SHOWDEFAULT:依据在STARTUPINFO结构中指定的SW_FLAG标志设定显示状态,STARTUPINFO 结构是由启动应用程序的程序传递给CreateProcess函数的。 SW_SHOWMAXIMIZED:激活窗口并将其最大化。 SW_SHOWMINIMIZED:激活窗口并将其最小化。 SW_SHOWMINNOACTIVE:窗口最小化,激活窗口仍然维持激活状态。 SW_SHOWNA:以窗口原来的状态显示窗口。激活窗口仍然维持激活状态。 SW_SHOWNOACTIVATE:以窗口最近一次的大小和状态显示窗口。激活窗口仍然维持激活状态。 SW_SHOWNORMAL:激活并显示一个窗口。如果窗口被最小化或最大化,系统将其恢复到原来的尺寸和大小。应用程序在第一次显示窗口的时候应该指定此标志。 实现功能 1.新建基于对话框的应用程序 2.拖拽两按钮<隐藏桌面文件图标><显示桌面文件图标>关联函数实现相应功能 - void CGkbc8Dlg::OnHide()
- {
- HWND desktop=::FindWindow("Progman",NULL);
- // HWND desktop=::FindWindow(NULL,"Program Manager");//或使用此代码
- if(desktop!=NULL)
- {
- ::ShowWindow(desktop,SW_HIDE);
- }
- }
- void CGkbc8Dlg::OnShow()
- {
- HWND desktop=::FindWindow("Progman",NULL);
- if(desktop!=NULL)
- {
- ::ShowWindow(desktop,SW_SHOW);
- }
- }
复制代码我们来演示下功能实现的整个过程
|