网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > VC++ > 正文
从任务通知区启动屏幕保护程序
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/15
下载{$ArticleTitle}原创论文样式

作者:朱志强

本文通过一个快速启动屏幕保护程序的小程序SSLaunch,来介绍应用程序如何向任务栏通知区加入图标、如何禁止多个Win32实例以及屏幕保护程序的有关内容。

  SSLaunch用C语言编写,用Visual C++ 5.0编译,是一个基于无模式对话框的程序,同时禁止多个实例,即一次只能有一个实例运行。任务栏通知区图标在对话框初始化时加入,对话框响应程序定义的回调消息,当鼠标左键按下时,弹出一由屏幕保护程序名填充的上下文菜单。对话框关闭(即程序退出)时删除任务栏通知区图标。如果读者有兴趣可以很容易地把它移植成基于 MFC 的程序

  1、任务栏通知区

  Windows 95的任务栏中有一个通知区, 应用程序可以把一个图标放入其中,以表示操作状态,并可以有与之相关联的工具用作说明控制。当鼠标出现在此图标的矩形边界内时,向相应的应用程序发送应用程序定义的回调消息。应用程序通过发送消息增加、修改、删除任务栏图标。消息的发送通过调用函数Shell_NotifyIcon来完成,如果调用成功,则返回TRUE;否则,返回FALSE。Shell_NotifyIcon函数原形如下:
WINSHELLAPI BOOL WINAPI Shell_NotifyIcon(
  DWORD dwMessage, // 消息标识符
  PNOTIFYICONDATA pnid // NOTIFYICONDATA 结构
  );
     消息标识符可以是 :
  NIM_ADD 向任务栏通知区加入图标
  NIM_DELETE 从任务栏通知区删除图标
  NIM_MODIFY 改变任务栏通知区图标
     NOTIFYICONDATA 结构:
  typedef struct _NOTIFYICONDATA {
   DWORD cbSize;
   HWND hWnd;
   UINT uID;
   UINT uFlags;
  UINT uCallbackMessage;
  HICON hIcon;
  char szTip[64];
  } NOTIFYICONDATA, *PNOTIFYICONDATA;
     其中:
  cbSize NOTIFYICONDATA 结构大小
  hWnd 接收回调消息窗口句柄
  uID 任务栏通知区图标标识
  uFlags 指定该结构中那些成员有效
  uCallbackMessage 应用程序定义的回调消息
  hIcon 任务栏通知区图标句柄
  szTip 任务栏通知区提示字符串
     参数uFlags可以是下列值的组合:
  NIF_ICON 任务栏通知区图标有效
  NIF_MESSAGE 应用程序定义的回调消息有效
  NIF_TIP 任务栏通知区提示字符串有效
  a.任务栏通知区图标的加入
  BOOL SSLaunch_OnInitDialog(HWND hwnd, HWND hwndFocus, LPARAM lParam)

  {

   // Add an notification icon to the taskbar

   NOTIFYCONDATA nid;

   NOTIFYICONDATA nid;

  
   nid.cbSize = sizeof(nid);

   nid.hWnd = hwnd;

   nid.uID = IDI_SSLAUNCH;

   nid.uFlags = NIF_MESSAGE|NIF_ICON|NIF_TIP;

   nid.uCallbackMessage = WM_SSLAUNCHICONNOTIFY;

   nid.hIcon=LoadIcon(GetWindowInstance(hwnd),

  KEINTRESOURCE(IDI_SSLAUNCH));

   lstrcpyn(nid.szTip,g_szAppName,sizeof(nid.szTip) /sizeof(nid.szTip[0]));

  
   return(Shell_NotifyIcon(NIM_ADD, &nid))

  }

  b.任务栏通知区图标的删除

   应用程序退出时,应该删除任务通知区上相应的图标:
  void SSLaunch_OnDestroy(HWND hwnd)

  {

   // Remove the notification icon from the taskbar

  
   NOTIFYICONDATA nid;

   nid.cbSize = sizeof(nid);

   nid.hWnd = hwnd;

   nid.uID = IDI_SSLAUNCH;

  
   Shell_NotifyIcon(NIM_DELETE, &nid);

  }

  c.应用程序定义回调消息的接收

  若为任务栏通知区指定了回调消息,则系统会于鼠标事件在此区域发生时

  向应用程序发送此消息,其中wParam是任务栏通知区图标标识,lParam

  是鼠标事件发生后的鼠标信息。

  
  void SSLaunch_OnIconNotify(WPARAM wParam, LPARAM lParam)

  
  • 下一篇资讯: 获得OnOK退出控制
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号