自己动手打造WinXP风格的Win7显示桌面程序
2011-12-21 11:40
260 查看
WinXP到Win7可谓是一个革命性的跨越,其中UI以及操作方式方面的变化巨大,给人带来更完美的用户体验也是有目共睹的。但UI及操作方式大规模改善的同时也给人们带来了诸多不便,一个很典型的例子,XP左面任务栏的显示桌面功能跑到最右侧显示时钟的旁边。
下面,给出一小段代码配合一定的操作来实现XP经典的显示桌面功能。
本例使用VC编译小程序代码,创建一个Win32工程,删除所有原有生成的代码,然后复制(或手动输入)如下代码:
#include <windows.h>
#include <shldisp.h>
int WINAPI WinMain( __in HINSTANCE hInstance, __in_opt HINSTANCE hPrevInstance, __in LPSTR lpCmdLine, __in int nShowCmd )
{
CoInitialize(0);
IShellDispatch4 *pdisp = NULL;
CoCreateInstance(CLSID_Shell, NULL, CLSCTX_ALL, __uuidof(IShellDispatch4),(void**)&pdisp);
pdisp-> ToggleDesktop(); // 这句是用来切换桌面的
pdisp-> Release();
CoUninitialize();
return 0;
}
这段代码主要是调用Shell提供的一个COM分发接口中的功能,显示桌面。具体细节请感兴趣的童鞋查MSDN
编译生成,发布Release(MT方式)
热乎乎的程序出炉了。将生成的ShowDesktop.exe拷到一个位置,推荐C:\Windows下,然后拖拽程序图标到开始按钮旁边的任务栏。OK,大功告成!
点一下试试吧。
Ps:用其他几种方式也可以实现显示桌面 例如:1.EnumChildWindows+ShowWindow 2.发送Win+D虚拟键码,感兴趣的童鞋可以试一下。
相关文章推荐
- 自己动手用VB打造桌面小钟
- C# 如何使自己的程序在“显示桌面”时不最小化
- C#怎样使自己的程序在“显示桌面”时不最小化
- VS编写的程序界面外观拥有winXP或win7风格
- 小程序:VC++修改Windows桌面背景为黑白灰色(WinXP、Win7 64位)
- 让自己的程序在桌面显示前运行,且仅在第一次运行模拟器的时候运行一次
- Qt Symbian: 如何让自己的程序显示在桌面上方
- VB6初步实现在WINXP下类似WIN7显示桌面的功能
- 让VC6.0写出来的程序在WinXP下显示为XP风格
- C# 如何使自己的程序在“显示桌面”时不最小化
- 用gnome打造自己的ubuntu桌面
- 自己动手写一个判断网址合法的C/C++的正则表达式程序
- ROS学习笔记(一):自己动手写一个ROS程序
- 自己动手打造WEB服务器 Windows + Apache + PHP + MySQL
- 第四题(迅雷笔试题):编写一个程序,开启3个线程,这3个线程的ID分别为A、B、C,每个线程将自己的ID在屏幕上打印10遍,要求输出结果必须按ABC的顺序显示;如:ABCABC….依次递推。
- 自己动手编写devExpress组件自动安装程序
- 自己动手打造嵌入式Linux软硬件开发环境
- 打造自己的vim界面--用winmanager合并显示NERDTree和TagList
- 自己动手编写devExpress组件自动安装程序
- 【转载】如何使得WIN7下用VS2010做出的MFC程序具有XP风格(摆脱传统界面的效果)