从任务通知区启动屏幕保护程序

从任务通知区启动屏幕保护程序

ID:27254005

大小:30.60 KB

页数:12页

时间:2018-12-02

从任务通知区启动屏幕保护程序_第1页
从任务通知区启动屏幕保护程序_第2页
从任务通知区启动屏幕保护程序_第3页
从任务通知区启动屏幕保护程序_第4页
从任务通知区启动屏幕保护程序_第5页
资源描述:

《从任务通知区启动屏幕保护程序》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、从任务通知区启动屏幕保护程序  1、任务栏通知区  Windows95的任务栏中有一个通知区,应用程序可以把一个图标放入其中,以表示操作状态,并可以有与之相关联的工具用作说明控制。当鼠标出现在此图标的矩形边界内时,向相应的应用程序发送应用程序定义的回调消息。应用程序通过发送消息增加、修改、删除任务栏图标。消息的发送通过调用函数Shell_NotifyIcon来完成,如果调用成功,则返回TRUE;否则,返回FALSE。Shell_NotifyIcon函数原形如下:WINSHELLAPIBOOLWINAPIShell_NotifyIco

2、n(  DWORDdwMessage,//消息标识符  PNOTIFYICONDATApnid//NOTIFYICONDATA结构  );    消息标识符可以是:  NIM_ADD向任务栏通知区加入图标  NIM_DELETE从任务栏通知区删除图标  NIM_MODIFY改变任务栏通知区图标    NOTIFYICONDATA结构:  typedefstruct_NOTIFYICONDATA{  DWORDcbSize;  HWNDhWnd;  UINTuID;  UINTuFlags;  UINTuCallbackMessage

3、;  HICONhIcon;  charszTip[64];  }NOTIFYICONDATA,*PNOTIFYICONDATA;    其中:  cbSizeNOTIFYICONDATA结构大小  hWnd接收回调消息窗口句柄  uID任务栏通知区图标标识  uFlags指定该结构中那些成员有效  uCallbackMessage应用程序定义的回调消息  hIcon任务栏通知区图标句柄  szTip任务栏通知区提示字符串    参数uFlags可以是下列值的组合:  NIF_ICON任务栏通知区图标有效  NIF_MESSAGE应

4、用程序定义的回调消息有效  NIF_TIP任务栏通知区提示字符串有效  a.任务栏通知区图标的加入  BOOLSSLaunch_OnInitDialog(HWNDhwnd,HWNDhwndFocus,LPARAMlParam)  {  //Addannotificationicontothetaskbar  NOTIFYCONDATAnid;  NOTIFYICONDATAnid;    nid.cbSize=sizeof(nid);  nid.hWnd=hwnd;  nid.uID=IDI_SSLAUNCH;  nid.uFlag

5、s=NIF_MESSAGE

6、NIF_ICON

7、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))  

8、}  b.任务栏通知区图标的删除  应用程序退出时,应该删除任务通知区上相应的图标:  voidSSLaunch_OnDestroy(HWNDhwnd)  {  //Removethenotificationiconfromthetaskbar    NOTIFYICONDATAnid;  nid.cbSize=sizeof(nid);  nid.hWnd=hwnd;  nid.uID=IDI_SSLAUNCH;    Shell_NotifyIcon(NIM_DELETE,&nid);  }  c.应用程序定义回调消息的接收  若

9、为任务栏通知区指定了回调消息,则系统会于鼠标事件在此区域发生时  向应用程序发送此消息,其中wParam是任务栏通知区图标标识,lParam  是鼠标事件发生后的鼠标信息。    voidSSLaunch_OnIconNotify(WPARAMwParam,LPARAMlParam)  {  UINTuID=(UINT)wParam;  UINTuMsg=(UINT)lParam;    if(uID==IDI_SSLAUNCH){  switch(uMsg){  caseWM_LBUTTONDOWN:  //Dosomething

10、  break;    caseWM_LBUTTONUP:  //Dosomething  break;    default:  break;  }  }  }    2.禁止多个Win32实例  在讨论禁止多个Win32实例之前,

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。