- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
给windows 95工具条增加显示桌面功能
给Windows 95工具条增加显示桌面功能 Windows 98“显示桌面”功能分析 点击Windows 98的工具条中的的“显示桌面”按钮后,所有运行程序的窗口都将被最小化,因而显露出桌面。再次点击“显示桌面”按钮,所有被最小化的窗口都将恢复原样,但第一次点击“显示桌面”按钮时已被最小化的窗口除外。由以上分析可以看出,“显示桌面”程序具有如下的功能特征: 能找出所有当前正在运行程序的窗口 如窗口未处于最小化,则将其最小化,并将它存入一个列表 再次点击“显示桌面”按钮时,能恢复记录在列表中的窗口 实现ShowDesktop的主要技术 ShowDesktop应实现上述的三个功能,同时还应将自身的运行图标插入工具条中。由于ShowDesktop是作为一个功能程序设计的,因此不能出现在运行程序列表中,也不能在工具条中的显示运行按钮,只能在工具条中显示为功能按钮。然而,Windows 95并没有象Windows 98一样提供在工具条中设置功能按钮的接口,因此很难将ShowDesktop显示为工具条中功能按钮。但是,Windows 95任务条的右边有一个区域被称为通知区域,在其中可以显示一些应用程序的图标,并且可以获得这些图标的鼠标操作消息。时钟和音量控制是任务条通知区最常见的图标,用鼠标单击其中的图标一般能弹出应用程序的菜单,双击则能显示应用程序的完整窗口界面。笔者采用这种技术来设计ShowDesktop,ShowDesktop运行时,仅在任务条通知区域中显示图标,以代替任务条中的功能按钮。点击ShowDesktop图标的功能和点击Windows 98 “显示桌面”按钮的功能完全相同。下面将讨论实现ShowDesktop的主要技术要点。 在工具条中显示程序的功能图标 任务条通知区编程可以通过Windows 95外壳编程接口函数Shell_NotifyIcon来实现,该函数在shellapi.h头文件中声明,其原型如下:WINSHELLAPI BOOL WINAPI Shell_NotifyIcon( DWORD dwMessage,PNOTIFYICONDATA pnid);dwMessage是对通知区图标进行操作的消息,主要有三中,如下表所示。Shell_NotifyIcon使用的消息 消息 说明NIM_ADD 在任务条通知区插入一个图标NIM_ DELETE 在任务条通知区删除一个图标NIM_ MODIFY 对任务条通知区的图标进行修改nid传入一个NOTIFYICONDATA结构的指针。NOTIFYICONDATA结构声明及各域的意义表示如下:typedefstruct _NOTIFYICONDATA { // nidDWORD cbSize; // NOTIFYICONDATA结构的字节数HWND hWnd; // 处理通知区图标消息的窗口句柄UINT uID; // 通知区图标的IDUINT uFlags; // 表示下述三项是否有意义的标志UINT uCallbackMessage; // 鼠标点击图标所发出消息的IDHICON hIcon; // 图标句柄char szTip[64]; // 当鼠标移到图标上时显示的提示信息} NOTIFYICONDATA, *PNOTIFYICONDATA;当用Shell_NotifyIcon在任务条通知区中放置一个图标时,同时也定义了一条回调消息,当用户用鼠标单击或双击图标时,NOTIFYICONDATA结构中指定的窗口句柄将接受到该消息。该消息的lParam参数将说明鼠标操作的方式。当应用程序退出时,应删除任务条中的图标。为了截获并处理任务条通知区中图标的鼠标操作消息,需要定义一个Windows用户消息,并将它赋直给NOTIFYICONDATA结构的uCallbackMessage。在ShowDesktop中,该消息的定义如下:#define UM_ICONNOTIFY WM_USER+100ShowDesktop的AddIcon和DeleteIcon函数分别实现图标在的任务条通知区的插入和删除,其代码如下:BOOL CShowDesktopDlg::AddIcon(){NOTIFYICONDATA nid;nid.cbSize = sizeof(nid);nid.hWnd = m_hWnd;nid.uID = IDR_MAINFRAME;nid.uFlags = NIF_MESSAGE | NIF_ICON | NIF_TIP;nid.uCallbackMessage = UM_ICONNOTIFY;nid.hIcon = m_hIcon;CStringstr = 显示桌面;lstrcpyn(nid.szTip, (LPCSTR)str, sizeof(nid.sz
文档评论(0)